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

2019-10-15 17:28发布

小弟近日在调试中碰到一个蛋疼的问题。。。纠结了好几天,希望各位兄弟给点宝贵建议。 以下是基本情况以及碰到的问题。 1.从机STM8是购买的甲醛模块,负责把测的甲醛浓度数据发送给主机。 协议比较简单,主机32给他发送一个数据包,它就返回一个数据包,如下: 模块用串口调试助手测试,10MS定时发送读取指令   A5 5A 02 80 AA  能正常返回数据包a5 5a 06  80........ 2 主机STM32的协议是自己写的,接收放在串口中断里,接受到数据包置标志通知主程序。 和PC串口调试也能够通过。(能发送读取指令打印在PC串口调试助手上,串口调试助手模拟模块返回数据包,stm32接收到了也能解析,处理。) 以上啰嗦了一大堆,就是表面:主机和从机分别和电脑串口测试,都能用。 然后,我把主机stm32和从机stm8互相连接,VCCTXRXGND  直接通过杜邦线连接。 其中主机的TX和从机的RX连接,共VCC 共地地。 模块就插到板子上,距离很近。  主机STM32发送给stm8命令数据包,在STM8上的RX引脚用示波器能测得波形,频率应该是准确的,因为结束位0xAA的时候示波器频率跳到4k8.(波特率设置9600,10101010,高低为一周期,所以 9600/2=4800)   那么问题来了,为什么STM8没有数据返回。。,stm8的TX引脚上为什么用示波器测量无数据。。。 排除几个问题 1.主机TX和从机RX接,确认了 2.stm32发送的数据包是对的。


























友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
天杰哥哥
1楼-- · 2019-10-15 17:52
问题解决了,给后面查看的兄弟们提供下我的解决经验。。。。。  原来问题出在 gpio的设置上, 32开始设置为  TX  推挽输出,RX 浮空输入,,和电脑串口通信没问题(可能串口转TTL模块IO口上拉 了),但是和STM8通信的时候,需要把32的RX配置为 上拉输入(STM8模块的输出可能没有带上拉)。。然后就一切正常了!
xuande
2楼-- · 2019-10-15 22:10
LZ貌似没有用仿真器。
另外,示波器测波特率。。。头次听说。

两年前遇到过232通信问题,时好时坏,很久搞不定,几乎崩溃。
过了半年才发现问题:虚焊。
brook_z
3楼-- · 2019-10-16 00:40
 精彩回答 2  元偷偷看……
天杰哥哥
4楼-- · 2019-10-16 06:29
回复【2楼】xuande:
---------------------------------
哥们,你那次虚焊,单独测试能用嘛。。。  另外,示波器测波特率。。。输出0XAA,10101010,主循环就执行这个,,,这样测出来的频率应该等于  波特率/2
天杰哥哥
5楼-- · 2019-10-16 09:50
回复【3楼】brook_z:
---------------------------------
哥们,格式是指   波特率  效验  位数 这些嘛,,,,电脑哦串口的设置我没改过,,,他们分别和电脑串口能通信,应该一样的吧,,,关于波特率误差,这个很棘手啊,不知道怎么解决,,配置的都是9600。。。
xuande
6楼-- · 2019-10-16 14:48
回复【4楼】天杰哥哥:
---------------------------------

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

一周热门 更多>