你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于stm32g系列usart5的问题

[复制链接]
wh99 提问时间:2024-10-17 18:12 / 未解决

请教一下关于stm32g系列的问题,stm32g0b1中的usart5进不去HAL_UARTEx_RxEventCallback,cudemx上配置跟其他串口也是一样的,都打开中断了,也配置了dma,软件中基本都是一样的写法,用接收函数也能接收到usart5的接收数据,但就算进不去HAL_UARTEx_RxEventCallback函数,其他串口都正常进入。

4.png2.png3.png1.pngSnipaste_2024-10-17_17-45-23.png

收藏 评论2 发布时间:2024-10-17 18:12

举报

2个回答
butterflyspring 回答时间:2024-10-18 10:44:23
可以调试一下或添加代码验证,上一层有没有运行到。

比如在 UART_DMAReceiveCplt(DMA_HandleTypeDef *hdma) 中调用HAL_UARTEx_RxEventCallback
那么调试看看实际是否有DMA接收完成,如果没有,那么问题就从UART5的DMA接收逻辑上找



Stm32g0b1 uart5 RxEvent callback.PNG
xmshao 回答时间:2024-10-18 17:33:01
我这边就你的问题拿STM32G0开发板做了验证测试,可以肯定USART5 的DMA接收,同时利用空闲事件作为结束条件是没有问题的。


  库里提供的API函数就是 HAL_UARTEx_ReceiveToIdle_DMA()。


我刚才使用STM32G0B1,uart2发送数据,UART3和UART5基于DMA方式接收,都会调用HAL_UARTEx_RxEventCallback( ) 函数。




void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
if (huart->Instance ==USART3)       flag1=0x33;


if (huart->Instance ==USART5)       flag2 = 0x55;


}

rrr.png
建议先检查发送信号是否过来了,再就是检查下USART5接收相关的DMA配置是否有问题。
还有就是代码书写方面,好些函数或变量往往一字之差,但都存在于工程中,避免张冠李戴,
这些小细节好好检查下。






所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版