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

关于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 回答时间:前天 10:44
可以调试一下或添加代码验证,上一层有没有运行到。

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



Stm32g0b1 uart5 RxEvent callback.PNG
xmshao 回答时间:前天 17:33
我这边就你的问题拿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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版