OpenEdv-开源电子网

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

stm32与STM8 双机串口通信问题~ 奇怪ing~

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2015-9-14
在线时间
0 小时
发表于 2015-9-14 09:38:59 | 显示全部楼层 |阅读模式
5金钱

小弟近日在调试中碰到一个蛋疼的问题。。。纠结了好几天,希望各位兄弟给点宝贵建议。

以下是基本情况以及碰到的问题。

1.从机STM8是购买的甲醛模块,负责把测的甲醛浓度数据发送给主机。 协议比较简单,主机32给他发送一个数据包,它就返回一个数据包,如下:

模块用串口调试助手测试,10MS定时发送读取指令   A5 5A 02 80 AA  能正常返回数据包a5 5a 06  80........

2 主机STM32的协议是自己写的,接收放在串口中断里,接受到数据包置标志通知主程序。 和PC串口调试也能够通过。(能发送读取指令打印在PC串口调试助手上,串口调试助手模拟模块返回数据包,stm32接收到了也能解析,处理。)

以上啰嗦了一大堆,就是表面:主机和从机分别和电脑串口测试,都能用。

然后,我把主机stm32和从机stm8互相连接,VCC\TX\RX\GND  直接通过杜邦线连接。 其中主机的TX和从机的RX连接,共VCC 共地地。 模块就插到板子上,距离很近。  主机STM32发送给stm8命令数据包,在STM8上的RX引脚用示波器能测得波形,频率应该是准确的,因为结束位0xAA的时候示波器频率跳到4k8.(波特率设置9600,10101010,高低为一周期,所以 9600/2=4800)   那么问题来了,为什么STM8没有数据返回。。,stm8的TX引脚上为什么用示波器测量无数据。。。

排除几个问题

1.主机TX和从机RX接,确认了

2.stm32发送的数据包是对的。




























最佳答案

查看完整内容[请看2#楼]

问题解决了,给后面查看的兄弟们提供下我的解决经验。。。。。  原来问题出在 gpio的设置上, 32开始设置为  TX  推挽输出,RX 浮空输入,,和电脑串口通信没问题(可能串口转TTL模块IO口上拉 了),但是和STM8通信的时候,需要把32的RX配置为 上拉输入(STM8模块的输出可能没有带上拉)。。然后就一切正常了!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2015-9-14
在线时间
0 小时
 楼主| 发表于 2015-9-14 09:39:00 | 显示全部楼层
问题解决了,给后面查看的兄弟们提供下我的解决经验。。。。。  原来问题出在 gpio的设置上, 32开始设置为  TX  推挽输出,RX 浮空输入,,和电脑串口通信没问题(可能串口转TTL模块IO口上拉 了),但是和STM8通信的时候,需要把32的RX配置为 上拉输入(STM8模块的输出可能没有带上拉)。。然后就一切正常了!
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11541
金钱
11541
注册时间
2014-4-1
在线时间
1315 小时
发表于 2015-9-14 17:52:50 | 显示全部楼层
LZ貌似没有用仿真器。
另外,示波器测波特率。。。头次听说。

两年前遇到过232通信问题,时好时坏,很久搞不定,几乎崩溃。
过了半年才发现问题:虚焊。
回复

使用道具 举报

3

主题

65

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2014-10-31
在线时间
8 小时
发表于 2015-9-14 17:57:36 | 显示全部楼层
顶起,格式 波特率方面检测一下
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2015-9-14
在线时间
0 小时
 楼主| 发表于 2015-9-15 08:51:35 | 显示全部楼层
回复【2楼】xuande:
---------------------------------
哥们,你那次虚焊,单独测试能用嘛。。。  另外,示波器测波特率。。。输出0XAA,10101010,主循环就执行这个,,,这样测出来的频率应该等于  波特率/2
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2015-9-14
在线时间
0 小时
 楼主| 发表于 2015-9-15 08:53:33 | 显示全部楼层
回复【3楼】brook_z:
---------------------------------
哥们,格式是指   波特率  效验  位数 这些嘛,,,,电脑哦串口的设置我没改过,,,他们分别和电脑串口能通信,应该一样的吧,,,关于波特率误差,这个很棘手啊,不知道怎么解决,,配置的都是9600。。。
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11541
金钱
11541
注册时间
2014-4-1
在线时间
1315 小时
发表于 2015-9-15 11:39:14 | 显示全部楼层
回复【4楼】天杰哥哥:
---------------------------------

用示波器看0或1的时间宽度,9600,大约是100uS。
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2015-9-14
在线时间
0 小时
 楼主| 发表于 2015-9-16 13:19:52 | 显示全部楼层
回复【6楼】xuande:
---------------------------------
嗯,,好方法!
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2015-4-12
在线时间
3 小时
发表于 2017-1-13 22:44:01 | 显示全部楼层
楼主,小弟最近也在弄这个甲醛模块,返回的数据时有时无,一直搞不定,还望多多指导
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-30 11:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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