GD32F4无法使用STM32CubeMx生成代码进行串口DMA中断接收
使用GD32F4替换STM32F4,理论上大部分代码都可以兼容,测试串口DMA+空闲中断接收时发现DMA无法收到数据,DMA计数器没有增加,通过对比运行状态时的DMA寄存器状态,观察到GD32的DMA的地址自动增加和循环模式没有被正确置位。检查代码发现CubeMX生成的代码在设置串口DMA接收之前没有使能DMA,在初始化之前,先使能DMA的RCC时钟后即可正常使用。STM32可以在未初始化外设模块时钟时,修改其寄存器设置,GD32则必须要先使能外设时钟后才能设置对应的控制寄存器值。
原创
2022-09-26 09:42:33 ·
652 阅读 ·
1 评论