打印
[STM32F0]

请教 写flash后 USART1无法接收。

[复制链接]
998|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GZZXB|  楼主 | 2023-8-15 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     初始串口后收发正常,只要有写flash动作(当eeporm用),就会将CR1的 PEIE RXNEIE 及 CR3的EIE 3个中断清0,这样后续串口就无法接收数据了。
参考 https://blog.csdn.net/wanruiou/article/details/106897873?ydreferer=aHR0cHM6Ly9jbi5iaW5nLmNvbS8%3D  用 HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, 1);  重开问题依旧存在。


使用特权

评论回复
沙发
zhenykun| | 2023-8-15 20:37 | 只看该作者
楼主是追求真实自己吗

使用特权

评论回复
板凳
Bowclad| | 2023-8-15 23:19 | 只看该作者
在keil调试窗口看看

使用特权

评论回复
地板
AloneKaven| | 2023-8-16 23:56 | 只看该作者
看下程序里什么情况会对中断使能清0

使用特权

评论回复
5
香水城| | 2023-8-17 11:40 | 只看该作者
flash写操作时可能临时堵塞CPU,UART接收到的数据没法及时取走的话 会发生溢出错误,
如果溢出中断不能清除会影响程序正常运行。

使用特权

评论回复
6
Jacquetry| | 2023-8-17 23:02 | 只看该作者
在内存中建立循环缓冲区试试

使用特权

评论回复
7
Henryko| | 2023-8-19 22:06 | 只看该作者
有可能是标志位清除太慢了吧

使用特权

评论回复
8
MessageRing| | 2023-8-23 21:46 | 只看该作者
有可能是串口的标志位没去掉吧

使用特权

评论回复
9
jcky001| | 2023-10-19 11:04 | 只看该作者
检查 USART1 的配置

使用特权

评论回复
10
两只袜子| | 2023-10-19 11:04 | 只看该作者
确保 USART1 的TX和RX引脚正确连接,以及所连接设备的串口设置与 USART1 的配置相匹配。

使用特权

评论回复
11
elephant00| | 2023-10-19 11:05 | 只看该作者
检查你的代码是否有潜在的错误或冲突。

使用特权

评论回复
12
BullTalented| | 2023-10-23 12:07 | 只看该作者
检查一下USART1 的TX和RX引脚是否正确连接

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

96

主题

331

帖子

10

粉丝