STM32G474xx HAL User Manual
Defines
PCD私有宏
PCD

宏定义

#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)