搜索
bottom↓
回复: 9

stm32的串口时序,发送等待时间与停止位之间的关系,求指教

[复制链接]

出0入0汤圆

发表于 2017-8-14 10:22:43 | 显示全部楼层 |阅读模式
本帖最后由 擦鞋匠 于 2017-8-14 10:31 编辑

开发环境:Keil+stm32f103zet6

实验描述:
图中所示的Tx和Rx是相对单片机而言的。
这段时间在倒腾modbus,经过调试我发现数据在发送(从单片机向Modbus Poll发送)的时候,Modbus Poll少接收一个字节,或者接收到最后一个字节,但是其值是0xFF(CRC16低字节丢失或者为oxFF)。
最终我定位到串口底层发送时没有延时(也就是没有坚持到TC置位就直接发送下一字节数据)。
于是乎,我就用逻辑分析仪看看<1>没有检测TC置位和<2>检测TC置位时两者的波形有什么区别。。。

实验现象(大家对比着看):
<1> 没有检测TC置位时(19200,8位数据,无校验,1位停止位)



<2> 检测TC置位时      (19200,8位数据,无校验,1位停止位)




实验问题:
<1> 为什么单片机Tx处于发送状态时Rx是处于低电平(如图所示),我没理解为什么。
PS:Modbus Poll少接收一个字节数据,是否是因为Tx发送时,Rx没有置低导致的,如第二张图所示。
<2> 看波形,这个while(XXX)等待所用的时间刚好是一个bit所用的时间(19200bps下大约是是52us),就好像是使用2个停止位。
于是乎,我关闭while(XXX),而是使用2个停止位,又会出现我之前的现象(Modbus Poll少接收一个字节,或者接收到的最后一个字节为0xFF),求大神解释。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

 楼主| 发表于 2017-8-14 10:29:38 | 显示全部楼层
如果有语言表达不到位,或者实验描述不清楚的,大家指出,小弟一定认真仔细作答!!!

出0入4汤圆

发表于 2017-8-14 10:30:31 | 显示全部楼层
干吗不用DMA?

出0入0汤圆

 楼主| 发表于 2017-8-14 13:08:53 | 显示全部楼层
自己先顶起来

出0入0汤圆

发表于 2017-8-14 13:15:50 | 显示全部楼层
1.关于发送的时候RX被拉低,可以参考下面这个帖子。
https://www.amobbs.com/forum.php ... p;page=1#pid9827591
2.你说的停止位的差别可能和你分析的一样,检测TC时会有额外的时间,从你的TX数据看没毛病,至于为什么你的Modbus poll少收一个,你换个串口转USB再试试吧。

出0入0汤圆

 楼主| 发表于 2017-8-14 14:23:11 | 显示全部楼层
本帖最后由 擦鞋匠 于 2017-8-14 14:27 编辑
lingdianhao 发表于 2017-8-14 13:15
1.关于发送的时候RX被拉低,可以参考下面这个帖子。
https://www.amobbs.com/forum.php?mod=viewthread&tid ...


首先感谢大神回复。

关于Tx发送时Rx被拉低,链接上说Rx需要上拉电阻。

我想到我之前的Rx模式是使用浮空输入的,于是我将Rx模式设置为上拉输入。

小弟再次进行测试。现象如下:

1> 前面我将Rx设置为浮空输入,时序就是上面贴图所示。

2> 下图我将Rx设置为上拉输入,部分解决我心中的疑惑(但又一个小小的下拉脉冲),现象如下。





此时,在Tx发送(大概靠近中间位置)仍然有一个很短的下拉脉冲(持续时间,逻辑分析仪测量为10ns)。不明白,Tx发送为什么总是会对Rx产生影响?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-8-14 17:22:11 | 显示全部楼层
物理层是232?485?TTL?说不定是收发器的事情呢

出0入0汤圆

 楼主| 发表于 2017-8-14 17:30:15 | 显示全部楼层
janafar 发表于 2017-8-14 17:22
物理层是232?485?TTL?说不定是收发器的事情呢

物理层是单片机(TTL电平)->485芯片->485转232模块-> 232模块转USB->上位机(Modbus Poll)

出0入0汤圆

发表于 2017-8-14 17:33:09 | 显示全部楼层
尝试把485芯片卸掉再看看

出0入0汤圆

发表于 2017-8-15 00:09:54 | 显示全部楼层
擦鞋匠 发表于 2017-8-14 14:23
首先感谢大神回复。

关于Tx发送时Rx被拉低,链接上说Rx需要上拉电阻。

这个TX会影响RX是收发器的关系。我用过的基本上收发器都有这个问题,但是485是半双工的,发送的时候接收没有意义。因此软件时序上发送的时候关闭串口接收。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-23 21:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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