STM32F407/STM32L476 USB OTG DMA接收:通道链接配置求助
USB OTG DMA 接收通道链接方案
针对STM32平台USB OTG接收的DMA链接需求,__HAL_LINKDMA的参数匹配需结合USB OTG的类型(FS/HS)来确定,具体方案如下:
USB OTG FS 接收场景
若使用全速USB OTG,链接代码示例:__HAL_LINKDMA(&hUSB_OTG_FS, hprx, hdma_usb_otg_fs);其中
hUSB_OTG_FS是你初始化的USB OTG FS句柄,hprx为HAL库中对应接收DMA的结构体字段,hdma_usb_otg_fs是已配置完成的DMA句柄。USB OTG HS 接收场景
若使用高速USB OTG,替换为:__HAL_LINKDMA(&hUSB_OTG_HS, hprx, hdma_usb_otg_hs);
关键注意点
- 部分旧版本HAL库中,接收DMA字段可能为
dmarx而非hprx,可直接查看stm32xxxx_hal_usb.h头文件里USB_OTG_HandleTypeDef结构体的定义,确认具体字段名。 - 务必保证DMA通道的请求映射与USB OTG外设匹配,比如FS通常对应DMA2的Channel 0/4(不同芯片系列有差异),HS对应DMA2的Channel 5等,需参考芯片参考手册的DMA请求映射表。
内容的提问来源于stack exchange,提问作者Waqas Ahmad
相关产品推荐
相关产品推荐

