| 
 
| 在文件stm32f1xx_hal_pcd.h中,红色部分没有实现的代码,未定义,版本是v1.8.4官方是不是漏写了? 
 #define PCD_GET_EP_TX_ADDRESS(USBx, bEpNum) ((uint16_t)*PCD_EP_TX_ADDRESS((USBx), (bEpNum)))
 #define PCD_GET_EP_RX_ADDRESS(USBx, bEpNum) ((uint16_t)*PCD_EP_RX_ADDRESS((USBx), (bEpNum)))
 另外以下代码标红色的地方为什么要这么写?
 #define PCD_SET_EP_TX_ADDRESS(USBx, bEpNum, wAddr) \
 do { \
 __IO uint16_t *_wRegVal; \
 uint32_t _wRegBase = (uint32_t)USBx; \
 \
 _wRegBase += (uint32_t)(USBx)->BTABLE; \
 _wRegVal = (__IO uint16_t *)(_wRegBase + 0x400U + (((uint32_t)(bEpNum) * 8U) * PMA_ACCESS)); \
 *_wRegVal = ((wAddr) >> 1) << 1; \
 } while(0) /* PCD_SET_EP_TX_ADDRESS */
 
 | 
 评论 |