|
使用U5系列,UART4TX + DMA转运功能。程序运行的第一次能正常发送,并且DMA发送完成后正常进入中断服务函数,转运完成标志位置位。但DMA与串口的状态一直处于忙状态没有转变为空闲状态,导致第二次发送无法成功进行。 当我在传输完成中断中手动置位串口与DMA的状态才能再次进行发送。
想询问一下大佬们,是我可能cubemx配置有问题?还是确实需要自己软件置位相关状态? |
ST的MCU开发
请教STM32F103的DMA空闲接收问题
ST的MCU开发
STM32H725VGT3内存不足问题
关于STM32Cubemx 6.15版本生成工程的文件编码的问题
STM32H7A3 怎样配置MDMA的硬件触发MDMA_REQUEST_DMA1_Stream0_TC将数据再次转运
串口DMA收发出现ORE错误
关于外部事件(EXTI0)触发SPI读取数据
有没有大佬更新了CubeIDE2.0.0,在软件内更新后体积大了一倍
STM32H7 USB3300底层寄存器问题
微信公众号
手机版
你的cubeMx配置没有问题,这个跟库代码设计的状态变量管理有关。
这个状态位在库里通常基于相关外设中断处理回调函数来管理的,但我们有时可能
并没有完全按照库的逻辑来设计代码,比方这里并不开启UART中断,只是启用UART tx/rx事件的
DMA传输,同时又要用到库提供的APP,我们此时需要额外针对状态位做状态位的调整,
比方复位啊、忙碌这些,根据具体状态调整即可。具体到你现在的做法,是常见的做法。
这个话题在论坛也经常聊起,不妨将库代码多看看也就知道怎么回事了。