硬汉嵌入式论坛

 找回密码
 立即注册
查看: 920|回复: 7
收起左侧

[有问必答] STM32F401串口诡异事件

[复制链接]

79

主题

712

回帖

949

积分

金牌会员

积分
949
发表于 2022-1-15 12:36:12 | 显示全部楼层 |阅读模式
最近在项目中串口遇到一个问题,很难复现,但是确认存在这个问题。问题描述:本来向上位机发送“ACK\n”,但是会出现发送“ACKK”的问题,两个KK之间大概有两个字节的间隔时间。底层发送逻辑是:单字节发送,每个字节放在一个环形缓冲区,当缓冲区满则等待。发送第一个字节的时候先开启TXE中断,TXE中断到来,将第一个字节赋值给DR,同时关闭TXE中断,开启TC中断,当TC中断到来,关闭TC中断,判断缓冲区是否还有数据,有的话继续开启TXE中断,开始新一轮的循环。

怀疑:发送过程由于RX无上拉,导致串扰,但是由于不稳定,检测不到结束位,导致帧错误,串口外设自动将接收缓冲区内容(‘K’)回传到DR,导致已经放入DR的数据'\n'被‘K’覆盖,再启动发送的时候发送成了K,然后中间那两字节时间就是错误处理导致的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2022-1-15 14:42:32 | 显示全部楼层
这种的推荐加个校验,像我们现在做项目串口通信,不管干什么,基本都加个modbus方式的处理。

这种的查起来还挺麻烦的
回复

使用道具 举报

79

主题

712

回帖

949

积分

金牌会员

积分
949
 楼主| 发表于 2022-1-15 17:34:42 | 显示全部楼层
eric2013 发表于 2022-1-15 14:42
这种的推荐加个校验,像我们现在做项目串口通信,不管干什么,基本都加个modbus方式的处理。

这种的查起 ...

是挺麻烦的,这种现象看上去基本不是应用代码有问题?已经有工程师跟踪很久了没有找出问题。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2022-1-16 09:46:42 | 显示全部楼层
庄永 发表于 2022-1-15 17:34
是挺麻烦的,这种现象看上去基本不是应用代码有问题?已经有工程师跟踪很久了没有找出问题。

你现在的串口速度和串口线长是多少。
回复

使用道具 举报

79

主题

712

回帖

949

积分

金牌会员

积分
949
 楼主| 发表于 2022-1-16 11:05:05 | 显示全部楼层
eric2013 发表于 2022-1-16 09:46
你现在的串口速度和串口线长是多少。

115200的速度,长度也就1m左右。两边的RX都没加上拉。
回复

使用道具 举报

41

主题

215

回帖

338

积分

高级会员

积分
338
发表于 2022-1-16 13:25:57 | 显示全部楼层
1. 能不能先死等发送
2. 到底是上位机接收的问题,还是下位机发送的问题。
能不能下位机发送有问题的时候,用示波器看看。
回复

使用道具 举报

4

主题

23

回帖

35

积分

新手上路

积分
35
发表于 2022-1-17 16:28:04 | 显示全部楼层
eric2013 发表于 2022-1-15 14:42
这种的推荐加个校验,像我们现在做项目串口通信,不管干什么,基本都加个modbus方式的处理。

这种的查起 ...

我记得硬汉例程不是都是FIFO模式吗?有用到modbus吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107452
QQ
发表于 2022-1-17 16:41:23 | 显示全部楼层
huangxian 发表于 2022-1-17 16:28
我记得硬汉例程不是都是FIFO模式吗?有用到modbus吗

你说的开发配套的简单串口例子吧,那个串口驱动是串口FIFO的玩法。

而我们现在做项目开发,使用串口全部上modbus,单独简单的串口FIFO使用,很少了。

【年末福利】安富莱电子发布Modbus教程,配套STM32F103,F407和F429主从机例子
https://www.armbbs.cn/forum.php?mod=viewthread&tid=16989


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-1 14:16 , Processed in 0.250294 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表