|
使用U5系列,UART4TX + DMA转运功能。程序运行的第一次能正常发送,并且DMA发送完成后正常进入中断服务函数,转运完成标志位置位。但DMA与串口的状态一直处于忙状态没有转变为空闲状态,导致第二次发送无法成功进行。 当我在传输完成中断中手动置位串口与DMA的状态才能再次进行发送。
想询问一下大佬们,是我可能cubemx配置有问题?还是确实需要自己软件置位相关状态? |
关于STM32WB09使用CUBEMX进行配置的问题
关于使用STM32CubeIDE for vscode配置freertos的问题
DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)
STM32CUbeMX生成的代码里面没有HAL_ADC_Calibration_Start和HAL_ADCEx_Calibration_Start
stm32 motor control workbench生成代码时,找不到STM32CUBEMX
有没有大佬更新了CubeIDE2.0.0,在软件内更新后体积大了一倍
STM32CUBE调试中出现没有 “uwTickPrio() at 0x20000004” 对应的源文件
stm32f746g-disco开发板的串口通讯连接方式
关于STM32Cubemx 6.15版本生成工程的文件编码的问题
在STM32CUBEIDE中配置完以后直接编译然后再运行出现《没有 “_end() at 0x20000108” 对应的源文件》
微信公众号
手机版
你的cubeMx配置没有问题,这个跟库代码设计的状态变量管理有关。
这个状态位在库里通常基于相关外设中断处理回调函数来管理的,但我们有时可能
并没有完全按照库的逻辑来设计代码,比方这里并不开启UART中断,只是启用UART tx/rx事件的
DMA传输,同时又要用到库提供的APP,我们此时需要额外针对状态位做状态位的调整,
比方复位啊、忙碌这些,根据具体状态调整即可。具体到你现在的做法,是常见的做法。
这个话题在论坛也经常聊起,不妨将库代码多看看也就知道怎么回事了。