宏定义 |
| #define | PCD_MIN(a, b) (((a) < (b)) ? (a) : (b)) |
| #define | PCD_MAX(a, b) (((a) > (b)) ? (a) : (b)) |
| #define | USB_CNTRX_NBLK_MSK (0x1FUL << 10) |
| #define | USB_CNTRX_BLSIZE (0x1UL << 15) |
| #define | PCD_SET_ENDPOINT(USBx, bEpNum, wRegValue) (*(__IO uint16_t *)(&(USBx)->EP0R + ((bEpNum) * 2U)) = (uint16_t)(wRegValue)) |
| #define | PCD_GET_ENDPOINT(USBx, bEpNum) (*(__IO uint16_t *)(&(USBx)->EP0R + ((bEpNum) * 2U))) |
| #define | PCD_SET_EPTYPE(USBx, bEpNum, wType) |
| | 设置端点寄存器中的类型(位 EP_TYPE[1:0])
|
| #define | PCD_GET_EPTYPE(USBx, bEpNum) (PCD_GET_ENDPOINT((USBx), (bEpNum)) & USB_EP_T_FIELD) |
| | 获取端点寄存器中的类型(位 EP_TYPE[1:0])
|
| #define | PCD_FREE_USER_BUFFER(USBx, bEpNum, bDir) |
| | 释放应用程序使用的缓冲区,并在双缓冲端点寄存器中翻转SW_BUF位
|
| #define | PCD_SET_EP_TX_STATUS(USBx, bEpNum, wState) |
| | 设置tx传输的状态(位 STAT_TX[1:0])。
|
| #define | PCD_SET_EP_RX_STATUS(USBx, bEpNum, wState) |
| | 设置rx传输的状态(位 STAT_TX[1:0])
|
| #define | PCD_SET_EP_TXRX_STATUS(USBx, bEpNum, wStaterx, wStatetx) |
| | 设置rx和tx的状态(位 STAT_TX[1:0] 和 STAT_RX[1:0])
|
| #define | PCD_GET_EP_TX_STATUS(USBx, bEpNum) ((uint16_t)PCD_GET_ENDPOINT((USBx), (bEpNum)) & USB_EPTX_STAT) |
| | 获取tx/rx传输的状态(位 STAT_TX[1:0] /STAT_RX[1:0])
|
| #define | PCD_GET_EP_RX_STATUS(USBx, bEpNum) ((uint16_t)PCD_GET_ENDPOINT((USBx), (bEpNum)) & USB_EPRX_STAT) |
| #define | PCD_SET_EP_TX_VALID(USBx, bEpNum) (PCD_SET_EP_TX_STATUS((USBx), (bEpNum), USB_EP_TX_VALID)) |
| | 直接将VALID tx/rx状态设置到端点寄存器
|
| #define | PCD_SET_EP_RX_VALID(USBx, bEpNum) (PCD_SET_EP_RX_STATUS((USBx), (bEpNum), USB_EP_RX_VALID)) |
| #define | PCD_GET_EP_TX_STALL_STATUS(USBx, bEpNum) (PCD_GET_EP_TX_STATUS((USBx), (bEpNum)) == USB_EP_TX_STALL) |
| | 检查端点中的stall状态。
|
| #define | PCD_GET_EP_RX_STALL_STATUS(USBx, bEpNum) (PCD_GET_EP_RX_STATUS((USBx), (bEpNum)) == USB_EP_RX_STALL) |
| #define | PCD_SET_EP_KIND(USBx, bEpNum) |
| | 设置和清除EP_KIND位。
|
| #define | PCD_CLEAR_EP_KIND(USBx, bEpNum) |
| #define | PCD_SET_OUT_STATUS(USBx, bEpNum) PCD_SET_EP_KIND((USBx), (bEpNum)) |
| | 直接在端点寄存器中设置/清除STATUS_OUT位。
|
| #define | PCD_CLEAR_OUT_STATUS(USBx, bEpNum) PCD_CLEAR_EP_KIND((USBx), (bEpNum)) |
| #define | PCD_SET_BULK_EP_DBUF(USBx, bEpNum) PCD_SET_EP_KIND((USBx), (bEpNum)) |
| | 直接在端点寄存器中设置/清除EP_KIND位。
|
| #define | PCD_CLEAR_BULK_EP_DBUF(USBx, bEpNum) PCD_CLEAR_EP_KIND((USBx), (bEpNum)) |
| #define | PCD_CLEAR_RX_EP_CTR(USBx, bEpNum) |
| | 清除端点寄存器中的CTR_RX / CTR_TX位。
|
| #define | PCD_CLEAR_TX_EP_CTR(USBx, bEpNum) |
| #define | PCD_RX_DTOG(USBx, bEpNum) |
| | 翻转端点寄存器中的DTOG_RX / DTOG_TX位。
|
| #define | PCD_TX_DTOG(USBx, bEpNum) |
| #define | PCD_CLEAR_RX_DTOG(USBx, bEpNum) |
| | 清除端点寄存器中的DTOG_RX / DTOG_TX位。
|
| #define | PCD_CLEAR_TX_DTOG(USBx, bEpNum) |
| #define | PCD_SET_EP_ADDRESS(USBx, bEpNum, bAddr) |
| | 在端点寄存器中设置地址。
|
| #define | PCD_GET_EP_ADDRESS(USBx, bEpNum) ((uint8_t)(PCD_GET_ENDPOINT((USBx), (bEpNum)) & USB_EPADDR_FIELD)) |
| | 在端点寄存器中获取地址。
|
| #define | PCD_EP_TX_CNT(USBx, bEpNum) |
| #define | PCD_EP_RX_CNT(USBx, bEpNum) |
| #define | PCD_SET_EP_TX_ADDRESS(USBx, bEpNum, wAddr) |
| | 设置tx/rx缓冲区的地址。
|
| #define | PCD_SET_EP_RX_ADDRESS(USBx, bEpNum, wAddr) |
| #define | PCD_GET_EP_TX_ADDRESS(USBx, bEpNum) ((uint16_t)*PCD_EP_TX_ADDRESS((USBx), (bEpNum))) |
| | 获取tx/rx缓冲区的地址。
|
| #define | PCD_GET_EP_RX_ADDRESS(USBx, bEpNum) ((uint16_t)*PCD_EP_RX_ADDRESS((USBx), (bEpNum))) |
| #define | PCD_CALC_BLK32(pdwReg, wCount, wNBlocks) |
| | 使用块数设置rx缓冲区的计数器。
|
| #define | PCD_CALC_BLK2(pdwReg, wCount, wNBlocks) |
| #define | PCD_SET_EP_CNT_RX_REG(pdwReg, wCount) |
| #define | PCD_SET_EP_RX_DBUF0_CNT(USBx, bEpNum, wCount) |
| #define | PCD_SET_EP_TX_CNT(USBx, bEpNum, wCount) |
| | 设置tx/rx缓冲区的计数器。
|
| #define | PCD_SET_EP_RX_CNT(USBx, bEpNum, wCount) |
| #define | PCD_GET_EP_TX_CNT(USBx, bEpNum) ((uint32_t)(*PCD_EP_TX_CNT((USBx), (bEpNum))) & 0x3ffU) |
| | 获取tx缓冲区的计数器。
|
| #define | PCD_GET_EP_RX_CNT(USBx, bEpNum) ((uint32_t)(*PCD_EP_RX_CNT((USBx), (bEpNum))) & 0x3ffU) |
| #define | PCD_SET_EP_DBUF0_ADDR(USBx, bEpNum, wBuf0Addr) |
| | 在双缓冲端点中设置缓冲区0/1地址。
|
| #define | PCD_SET_EP_DBUF1_ADDR(USBx, bEpNum, wBuf1Addr) |
|