|
使用U5系列,UART4TX + DMA转运功能。程序运行的第一次能正常发送,并且DMA发送完成后正常进入中断服务函数,转运完成标志位置位。但DMA与串口的状态一直处于忙状态没有转变为空闲状态,导致第二次发送无法成功进行。 当我在传输完成中断中手动置位串口与DMA的状态才能再次进行发送。
想询问一下大佬们,是我可能cubemx配置有问题?还是确实需要自己软件置位相关状态? |
CubeMX加载X-CUBE-AI库以后 再新建工程进不去mcu选择界面
使用Hal库的SPI读取磁边传感器导致STM32G4无法运行
CUBEMX支不支持修改默认文件夹格式
为什么STM32H7的DMA第一次启动延时较长?
CUBEMX设置ADC问题请教。
stm32g474RE 输出4相波形,如何精准输出ADC触发的问题。
STM32CUBEMX无法登录应该如何解决呢
STM32U575低功耗问题
STM32CubeMX2尝鲜
stm32u5g9j-dk1, 设置tzen1,之后关闭变砖
微信公众号
手机版
你的cubeMx配置没有问题,这个跟库代码设计的状态变量管理有关。
这个状态位在库里通常基于相关外设中断处理回调函数来管理的,但我们有时可能
并没有完全按照库的逻辑来设计代码,比方这里并不开启UART中断,只是启用UART tx/rx事件的
DMA传输,同时又要用到库提供的APP,我们此时需要额外针对状态位做状态位的调整,
比方复位啊、忙碌这些,根据具体状态调整即可。具体到你现在的做法,是常见的做法。
这个话题在论坛也经常聊起,不妨将库代码多看看也就知道怎么回事了。