|
使用U5系列,UART4TX + DMA转运功能。程序运行的第一次能正常发送,并且DMA发送完成后正常进入中断服务函数,转运完成标志位置位。但DMA与串口的状态一直处于忙状态没有转变为空闲状态,导致第二次发送无法成功进行。 当我在传输完成中断中手动置位串口与DMA的状态才能再次进行发送。
想询问一下大佬们,是我可能cubemx配置有问题?还是确实需要自己软件置位相关状态? |
STM32H7A3RGT6 ADC 8位采样速度只能达到3.5MSPS达不到数据手册上的7MSPS ?
DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)
STM32U585进入shutdown模式后偶发无法被唤醒引脚唤醒
STM32CubeMX中文界面菜单如何设置?
STM32cubeMX中文版怎么设置?
CUBEMX配置G474串口DMA传输,为什么接收正常发送不了?
STM32G474VET6如何配置HRTIM的中心对齐模式
开箱转盘中奖礼物,跑个“代码❤️”先!
G474 HRTIM的6个Fault引脚能对应三个定时器的6个通道吗?
STM32H743 以太网 为什么需要设置在0x30040000才能使用
微信公众号
手机版
你的cubeMx配置没有问题,这个跟库代码设计的状态变量管理有关。
这个状态位在库里通常基于相关外设中断处理回调函数来管理的,但我们有时可能
并没有完全按照库的逻辑来设计代码,比方这里并不开启UART中断,只是启用UART tx/rx事件的
DMA传输,同时又要用到库提供的APP,我们此时需要额外针对状态位做状态位的调整,
比方复位啊、忙碌这些,根据具体状态调整即可。具体到你现在的做法,是常见的做法。
这个话题在论坛也经常聊起,不妨将库代码多看看也就知道怎么回事了。