打印
[技术讨论]

单片机串口232通讯异常

[复制链接]
1629|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ssf621|  楼主 | 2022-11-16 21:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
大家好,最新遇到一个异常问题: 电路板1和电脑通讯正常, 电路板2和电脑通讯也正常
但是电路板1和电路板2通讯异常,接收数据错误。
采用示波器观察232芯片收发两端信号,232电平+5 v -5v 也正常, TTL电平0和+3.3v
波特率设置9600 8 N 1,  更换单片机不同串口,接收到数据也是异常
电路板1单片机接收引脚,无接收到数据时为低电平,外接上拉电阻也没效果

无标题.png (255.55 KB )

无标题.png

使用特权

评论回复

相关帖子

沙发
jjjyufan| | 2022-11-17 09:20 | 只看该作者
自定义协议?从机地址分配?

使用特权

评论回复
板凳
LcwSwust| | 2022-11-17 09:20 | 只看该作者
你看你的图,三个串口,定然有两个TXD接到了一起,两个输出脚接一起时 一个输出高电平一个输出低电平会怎么样?

使用特权

评论回复
地板
icecut| | 2022-11-17 09:39 | 只看该作者
如果这个图, 1发电脑收没问题, 2发电脑收没问题, 12收发就肯定有 问题

使用特权

评论回复
5
Boreas_Tyr| | 2022-11-17 09:43 | 只看该作者
看你描述,能收到数据,但是数据不对,先排除波特率生成过程产生的偏差(自己看手册,结合晶振计算)。一般要求通讯双方不超过5%,两侧单片机发同样数据比如0xAA,测量波形对比看看两边单片机的波特率时序差多少。

使用特权

评论回复
6
ssf621|  楼主 | 2022-11-17 09:46 | 只看该作者
单片机串口接收脚 示波器信号, 示波器显示数据是0x79,   串口程序解析出来的数据0x5e, 不知道是什么原因

2.png (440.32 KB )

2.png

使用特权

评论回复
7
ssf621|  楼主 | 2022-11-17 09:47 | 只看该作者
LcwSwust 发表于 2022-11-17 09:20
你看你的图,三个串口,定然有两个TXD接到了一起,两个输出脚接一起时 一个输出高电平一个输出低电平会怎么 ...

三个串口,同时只链接2个,要么2个电路板链接,要么单独和电脑链接

使用特权

评论回复
8
zjk103| | 2022-11-17 09:50 | 只看该作者
是不是板1和板2的收接收,发接发了?

使用特权

评论回复
9
ssf621|  楼主 | 2022-11-17 10:14 | 只看该作者
单片机设置:1个停止位, 定时发送数据0xaa, 停止位变成了2位

3.png (404.42 KB )

3.png

使用特权

评论回复
10
LcwSwust| | 2022-11-17 10:48 | 只看该作者
RXD脚无接收到数据时为低电平?这肯定是不行的,应为高电平才对,需要检查电路。
“停止位变成了2位”你说的是定时发送,并非连续发送,停止位与空闲高电平相连那么高电平时间就是会很长,发一个字节后若不发下一字节那就一直会是高电平,高电平不代表全是停止位。

使用特权

评论回复
11
cmyldd| | 2022-11-17 12:18 | 只看该作者
不能这样接的

使用特权

评论回复
12
lyjian| | 2022-11-17 12:49 | 只看该作者
本帖最后由 lyjian 于 2022-11-17 12:51 编辑

TXRX反了吧。
把电路板1、电路板2、PC的RXTX标出来再对连接看看。

使用特权

评论回复
13
ssf621|  楼主 | 2022-11-17 17:00 | 只看该作者
示波器信号图

1.png (495.64 KB )

1.png

使用特权

评论回复
评论
lyjian 2022-11-17 20:49 回复TA
@sjnh :232输入输出是反逻辑,输入高输出低(负电平),输入低输出高(正电平)。 
sjnh 2022-11-17 17:34 回复TA
这个波形很怪,左下图应该没数据时-5V,右上图没数据时高电平,现象有点像SH79单片机不发送数据时TXD口是低电平,难道这个引脚还做别的用? 
14
jerkoh| | 2022-11-17 18:48 | 只看该作者
BAS70WS  二极管串TX    RX,
分离PC和  另外一台设备

使用特权

评论回复
15
ningling_21| | 2022-11-17 20:41 | 只看该作者
这样接肯定有问题

使用特权

评论回复
16
ssf621|  楼主 | 2022-11-17 20:50 | 只看该作者
本帖最后由 ssf621 于 2022-11-17 20:53 编辑

1、两块电路板共地,线路正常,收发线没有接错
2、电路板单独和电脑连接,发送命令和响应数据都正确,串口设置都是:9600  8 N 1
3、示波器观测每一位数据宽度104us,  在5%误差范围内
4、232电平:0:+5V  1:-5V,   TTL电平:0:0v   1:3.3V, 都是正常
5、stm32f103rct6是在嘉立创贴片, 使用了串口5,接收脚PD2设置悬 浮输入、上拉输入或者外接10K上拉电阻,无接收数据时,电平都是0?
6、发送端发送的第一个数据时0x79,  接收到的数据解析是 0x5e?7、以前遇到过232串口数据异常,是两块MCU之间只用了一片SP3232芯片,电平不匹配,这个问题不存在,而且已经更换过232芯片
8、232外围电容也从0.1uf 更换成了1uf

使用特权

评论回复
17
gxs64| | 2022-11-17 21:14 | 只看该作者
a1的tx与a2的tx相连,肯定出问题

使用特权

评论回复
18
gxs64| | 2022-11-17 21:16 | 只看该作者
a1和a2的tx出来串一个二极管

使用特权

评论回复
19
ssf621|  楼主 | 2022-11-18 08:46 | 只看该作者
A1 A2相互链接的时候,断开A3的 。   A1A2连接的时候,TXD RXD交叉链接,能接收到数据,只不过数据异常

使用特权

评论回复
20
zchong| | 2022-11-20 09:28 | 只看该作者
“电路板1单片机接收引脚,无接收到数据时为低电平,外接上拉电阻也没效果”这个看上去明显有问题,先解决,看看是不是这个232接口芯片坏了。

使用特权

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

本版积分规则

63

主题

165

帖子

3

粉丝