OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6858|回复: 14

51单片机与STM32用RS232通信,STM32可以收到51发送的数据,51收不到STM32发送的数据,这是为什么?

[复制链接]

1

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2020-7-20
在线时间
7 小时
发表于 2021-2-26 13:18:49 | 显示全部楼层 |阅读模式
10金钱
1、51单片机的RS232与PC的串口调试助手通信,可以正常收发;2、STM32的RS232与PC的串口调试助手通信,也可以正常收发;
3、51单片机与STM32用RS232通信,STM32可以收到51发送的数据,51收不到STM32发送的数据,在PC端用串口调试助手看到STM32发送端的数据一直是00。
换了几个51的板子,都是一样的现象;检查了波特率和硬件连接都没有问题,
看到很多网友说51和STM32之间可以用串口直接通信,找不到什么原因会导致这样的问题。
还请大神指教!欢迎大家一起讨论!







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2020-7-20
在线时间
7 小时
 楼主| 发表于 2021-3-2 14:38:12 | 显示全部楼层
三叶草 发表于 2021-3-1 23:24
用示波器抓一下波形看看

用示波器看了,STM32发出的数据跟51发出的数据都是对的。
不同的是STM32发送的数据,两个字节之间有3个高电平;51发送的数据两个字节是紧接着的。是不是这个原因导致的51收不到STM32发送的数据?如果是的话,有什么解决办法?
回复

使用道具 举报

12

主题

3397

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8669
金钱
8669
注册时间
2020-5-11
在线时间
4132 小时
发表于 2021-2-26 15:58:36 | 显示全部楼层
本帖最后由 LcwSwust 于 2021-2-26 15:59 编辑

51与STM32的用RS232通信,然后与电脑串口怎么连的?RXD、TXD都与电脑的串口连上的?
专治疑难杂症
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2020-7-20
在线时间
7 小时
 楼主| 发表于 2021-2-26 16:10:23 | 显示全部楼层
LcwSwust 发表于 2021-2-26 15:58
51与STM32的用RS232通信,然后与电脑串口怎么连的?RXD、TXD都与电脑的串口连上的?

想看51的输出,电脑的接收就连51的发送;
想看STM32的输出,电脑的接收就连STM32的发送;
回复

使用道具 举报

12

主题

3397

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8669
金钱
8669
注册时间
2020-5-11
在线时间
4132 小时
发表于 2021-2-26 16:34:40 | 显示全部楼层
llnn 发表于 2021-2-26 16:10
想看51的输出,电脑的接收就连51的发送;
想看STM32的输出,电脑的接收就连STM32的发送;

哦,方法没问题,我还以为你会将两个TXD接一起,看来没有。
用示波器看看吧。
专治疑难杂症
回复

使用道具 举报

1

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
125
金钱
125
注册时间
2018-7-7
在线时间
20 小时
发表于 2021-2-26 22:12:02 | 显示全部楼层
加上拉电阻试试,或者试试改变stm32 uart IO的模式,浮空改为上拉。。等等,各种组合试试,一定可以的。
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-2-27 08:08:33 | 显示全部楼层
1.示波器看看数据是不是真实的00.
2.如果真实的00的话,你就让51的RX变成输入模式看下,看STM32能不能发出数据来.
3.也是关键的,你地线互通了吗?可以查下地线是不是接触不良
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2021-2-27 12:19:27 | 显示全部楼层
51一般是5V,stm32一般是3.3V;是不是电平有问题
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2020-7-20
在线时间
7 小时
 楼主| 发表于 2021-3-1 18:24:18 | 显示全部楼层
moticsoft 发表于 2021-2-26 22:12
加上拉电阻试试,或者试试改变stm32 uart IO的模式,浮空改为上拉。。等等,各种组合试试,一定可以的。

上拉试了不行,由于STM32的板子和软件都是别人做的,改不了IO模式
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2020-7-20
在线时间
7 小时
 楼主| 发表于 2021-3-1 18:31:24 | 显示全部楼层
聚东风 发表于 2021-2-27 08:08
1.示波器看看数据是不是真实的00.
2.如果真实的00的话,你就让51的RX变成输入模式看下,看STM32能不能发出数 ...

地线连接正确,现在不返回00了,而是一堆乱码,示波器看STM32发送端的波形,不是STM32应该返回的数据
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2020-7-20
在线时间
7 小时
 楼主| 发表于 2021-3-1 18:33:29 | 显示全部楼层
三叶草 发表于 2021-2-27 12:19
51一般是5V,stm32一般是3.3V;是不是电平有问题

也怀疑是电平问题,但是STM32那边上拉到5V也不行。照理两边都是RS232的电路,逻辑电平应该是匹配的。
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4480
金钱
4480
注册时间
2013-4-22
在线时间
337 小时
发表于 2021-3-1 23:24:34 | 显示全部楼层
llnn 发表于 2021-3-1 18:33
也怀疑是电平问题,但是STM32那边上拉到5V也不行。照理两边都是RS232的电路,逻辑电平应该是匹配的。

用示波器抓一下波形看看
回复

使用道具 举报

80

主题

931

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3348
金钱
3348
注册时间
2013-5-28
在线时间
468 小时
发表于 2021-3-2 08:04:15 | 显示全部楼层
llnn 发表于 2021-3-1 18:33
也怀疑是电平问题,但是STM32那边上拉到5V也不行。照理两边都是RS232的电路,逻辑电平应该是匹配的。

我都这么用的,不要怀疑这个口,这两个口好像是兼容3.3跟5V的,
你STM32发出来数据不对,你就找STM32啊,把多余的功能全部关了
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-11-4
在线时间
5 小时
发表于 2021-3-2 16:27:04 | 显示全部楼层
串口之间的通信
回复

使用道具 举报

4

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2019-5-11
在线时间
39 小时
发表于 2021-3-3 13:37:12 | 显示全部楼层
三线都接好,应该是没有问题。如果有,你看看逻辑电平是不是匹配。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 13:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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