?? usb_endp.c
字號:
/******************************************************************************
* 文件名 : usb_endp.c
* 功能描述 : 端點數據交換處理程序,同步數據傳輸管理
*STM32F107xx處理器使用雙緩存來管理同步數據傳輸,為了從PMA中把接收到的數據復制到
*Stream_Buffer中,需要管理兩個PMA緩存(ENDP1_BUF0Addr和ENDP1_BUF1Addr)之間數據
*的交換,通過EP1_OUT_Callback()函數來實現。In_Data_Offset全局變更用來指示更新接
*收并復制到數據緩存中的字節數。
*******************************************************************************/
/* 頭文件 ------------------------------------------------------------------*/
#include "usb_lib.h"
#include "usb_istr.h"
u8 Stream_Buff[24];/*數據緩存*/
u16 In_Data_Offset;/*全局變量,用于更新為接收并被復制進數據緩存的字節數*/
/*******************************************************************************
* 函數 : EP1_OUT_Callback
* 功能描述 : 端點1數據操作函數,用于PMA數據交換。
* 輸入 : 無.
* 輸出 : 無.
* 返回 : 無.
*******************************************************************************/
void EP1_OUT_Callback(void)
{
u16 Data_Len; /* 數據長度*/
if (GetENDPOINT(ENDP1) & EP_DTOG_TX)
{
/*讀PMA緩存1--ENDP1_BUF0Addr buffer*/
Data_Len = GetEPDblBuf0Count(ENDP1);
PMAToUserBufferCopy(Stream_Buff, ENDP1_BUF0Addr, Data_Len);
}
else
{
/*讀PMA緩存2--ENDP1_BUF1Addr buffer*/
Data_Len = GetEPDblBuf1Count(ENDP1);
PMAToUserBufferCopy(Stream_Buff, ENDP1_BUF1Addr, Data_Len);
}
FreeUserBuffer(ENDP1, EP_DBUF_OUT);
In_Data_Offset += Data_Len;
}
/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -