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

STM32G030 串口中断

[复制链接]
kekechon 提问时间:2024-3-6 16:25 / 未解决

在使用串口时 数据发送完毕 将串口设置为外部中断,然后MCU进入停止模式。在触发外部唤醒后,进入外部触发中断 ,再次初始化串口后,再接收串口数据时,不能再次进入串口中断。这是什么原因。

串口初始化

MX_USART2_UART_Init();

HAL_UART_Receive_IT(&huart2, (uint8_t *)&aRxBuffer, 1);//串口中断

......数据发送接收完成

MX_GPIOA3_INIT();// 串口RX 重新配置为中断引脚

HAL_PWR_EnterSTOPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI); //进入低功耗STOP模式

SystemClock_Config();

MX_USART2_UART_Init();

__HAL_UART_ENABLE(&huart2);//串口中断使能

...... 后续串口不能产生中断

收藏 评论2 发布时间:2024-3-6 16:25

举报

2个回答
butterflyspring 回答时间:2024-3-6 18:01:10
这个思路是很巧妙的。

不过有个时序问题需要考量,就是起始信号唤醒MCU后,这时时钟启动需要一定的时间,然后运行串口配置的代码也要一定时间(注意时钟源的选择,选错了的话波特率会不对)

此时START 信号已经执行了一段时间,甚至到了数据段,很大概率不能收到第一帧数据。
废鱼 回答时间:2024-3-6 21:04:32

首先确认一下,程序是否唤醒。从理论上说应该没有问题,再就是测试发送是否能够正常发送。正常如果使用HAL库,应该要调用中断接收的缓冲区。

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版