OpenEdv-开源电子网

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

救急:两个MIni版的板子间的串口通信问题

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-2-20
在线时间
0 小时
发表于 2014-2-20 21:59:56 | 显示全部楼层 |阅读模式
我用两个Mini的板子进行usart串口通信实验,如果把两块板子单独的和电脑连接起来测试,发送和接收的程序都可以工作,但是如果把两块板子直接连接,发送端显示一直在发送数据,但是接收端却接收不到(注明RX和TX没有接错)。请问这会是什么问题。
在两个开发板间进行串口通讯需要注意什么
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-2-20 22:58:52 | 显示全部楼层
TX和RX交叉的,你发的数据是什么,怎么判定收到数据,仿真的?要注意字符与数字的转换,差0X30
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
发表于 2014-2-21 08:49:46 | 显示全部楼层
有共地,TX,RX交叉接 一般就没什么问题了啊  
还有两个板间的波特率设置要相等
___诺现在就觉得失望无力,未来那么远该怎么扛。
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2014-2-21 10:39:36 | 显示全部楼层
发送方有回车符么?
学无止境
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-2-20
在线时间
0 小时
 楼主| 发表于 2014-2-21 11:09:15 | 显示全部楼层
回复【2楼】745021926:
---------------------------------
TX和RX已经交叉,而且用万用表检测后连接没有问题。
如果接收板接收到数据,可以在LCD上进行显示。这个过程在和电脑连接的时候是成功的。
但是在和发送端连接的时候不行。发送端一直在发送,但是接收不到
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-2-20
在线时间
0 小时
 楼主| 发表于 2014-2-21 11:10:13 | 显示全部楼层
回复【3楼】__小黑先生:
---------------------------------
串口初始化的程序是一样的
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-2-20
在线时间
0 小时
 楼主| 发表于 2014-2-21 11:11:40 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
添加了“\r\n”,回车换行符。不知道可不可行
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-2-21 11:12:13 | 显示全部楼层
回复【楼主位】sirius062:
---------------------------------
要连地线,不然两块板子的基准电平可能不一致
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-2-20
在线时间
0 小时
 楼主| 发表于 2014-2-21 12:18:42 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
应该是像你说的发送数据的时候没有发送回车符,请问这个问题该怎么解决?
如果直接在字符串后面加“\n\r”,会被认为是字符串,直接发送过去。
请指导下
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2014-2-21 12:19:44 | 显示全部楼层
回复【7楼】sirius062:

回复【4楼】jermy_z:
---------------------------------
添加了“\r\n”,回车换行符。不知道可不可行

---------------------------------
因为原子的程序有判断是否有接收到回车符,有接收到才算是接收完毕  你试试吧
学无止境
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2014-2-21 12:21:09 | 显示全部楼层
回复【9楼】sirius062:

回复【4楼】jermy_z:
---------------------------------
应该是像你说的发送数据的时候没有发送回车符,请问这个问题该怎么解决?
如果直接在字符串后面加“\n\r”,会被认为是字符串,直接发送过去。
请指导下

---------------------------------
你改原子的接收程序  或者 改发送程序吧  发送完数据后  再发送个回车符  让接收方认定已经发送完毕
学无止境
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-2-20
在线时间
0 小时
 楼主| 发表于 2014-2-22 15:03:40 | 显示全部楼层
回复【11楼】jermy_z:
---------------------------
今天又修改了程序,发送字符后特地加入了
u8 stop[5]={0x31,0x32,0x33,0x0D,0x0A};
for(t=0;t<5;t++)
{
USART1->DR=stop[t];
while((USART1->SR&0X40)==0);
}
在电脑上使用串口调试助手的时候确实能看到发送的数据最后两个是“0D 0A”。但是两个板子间通讯还是不行。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 05:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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