打印
[STM32F1]

(小白求助)串口调试问题

[复制链接]
295|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fxjwfx|  楼主 | 2025-7-12 13:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我按照江科大的程序写的代码,非常简单的单片机接收上位机(电脑)串口发来的“AF”不能保证每次发送就能接收到,这是什么情况?//串口配置应该没有问题波特率也对的

使用特权

评论回复
沙发
fxjwfx|  楼主 | 2025-7-12 13:24 | 只看该作者
                if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE) == SET)
                {
                        Receive = USART_ReceiveData(USART1);
                        printf("OK\r\n");
                }
我的串口调试助手需要好多次才能收到这个数据

使用特权

评论回复
板凳
LcwSwust| | 2025-7-12 14:55 | 只看该作者
看看串口助手的截图。
另外,建议不要在中断里做一些耗时的操作,比如printf,不然可能不能及时响应下一次中断。

使用特权

评论回复
地板
fxjwfx|  楼主 | 2025-7-12 21:22 | 只看该作者
LcwSwust 发表于 2025-7-12 14:55
看看串口助手的截图。
另外,建议不要在中断里做一些耗时的操作,比如printf,不然可能不能及时响应下一次 ...

我今天找到问题了,应该是同时使用了 “中断接收” 和 “查询接收” 两种方式,导致数据竞争冲突了

使用特权

评论回复
5
丙丁先生| | 2025-7-13 03:16 | 只看该作者
串口工具有每隔多少时间采集一次吧?在串口工具设置里。Sscom在右侧下方,

使用特权

评论回复
6
LightCatcher| | 2025-7-13 21:22 | 只看该作者
进串口先清中断标志位,判断是否接受完成才赋值么

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝