搜索
bottom↓
回复: 29

求助:232通信上电瞬间有乱码

[复制链接]

出0入0汤圆

发表于 2016-9-6 18:48:16 | 显示全部楼层 |阅读模式
本帖最后由 TUDOU2015 于 2016-9-7 10:11 编辑

1:采用232通信芯片ADM101E  通信MCU 为pic单片机
2:我想让MCU上电后通过串口返回一个数据,结果先返回一个乱码(乱码多为0x00和0xfe  还有其他的值),然后返回的值才是我要的值。
3:经过思考,可能是MCU端   TXD 和RXD上电瞬间状态不确定可能会造成乱码现象,故在TXD,RXD分别加上拉电阻10K。加上之后上电瞬间仍有10%的乱码概率  。TXD加上拉,RXD接下拉上电和断电瞬间都有乱码
问题提出:这种上电瞬间通过串口助手观察接收来的数据第一个字节是乱码,这种现象是否能通过硬件或者软件来解决?
               这种现象是否由于232通信芯片的内部寄存器通电瞬间的值造成的?这种现象是否可以避免?
               求围观,请各位大虾支招


出130入129汤圆

发表于 2016-9-6 18:50:27 | 显示全部楼层
你的数据是裸奔?就没有封装校验这些?

出0入0汤圆

发表于 2016-9-6 18:58:30 | 显示全部楼层
如果是控制,数据打包加校验能对付,如果是做监视,那就全部显示就可以了

出0入0汤圆

 楼主| 发表于 2016-9-6 19:08:16 | 显示全部楼层
68336016 发表于 2016-9-6 18:50
你的数据是裸奔?就没有封装校验这些?

MCU在上电瞬间发送单个字节,上电瞬间返回两个字节,一个是乱码,后面的是正常的数据,问题出在上电瞬间
在正常工作中我是有求和校验的,以数据包的形式发送  包头包尾校验都有   
我的问题是:单字节测试时上电瞬间瞬间为何会收到两个字节   

出0入0汤圆

 楼主| 发表于 2016-9-6 19:09:34 | 显示全部楼层
NJ8888 发表于 2016-9-6 18:58
如果是控制,数据打包加校验能对付,如果是做监视,那就全部显示就可以了 ...

返回数据是用来被其他的MCU处理的,所以要验证上电瞬间数据的准确性    不能有乱码

出0入0汤圆

发表于 2016-9-6 19:34:56 来自手机 | 显示全部楼层
上电延时一会

出0入0汤圆

发表于 2016-9-6 19:42:12 | 显示全部楼层
TUDOU2015 发表于 2016-9-6 19:09
返回数据是用来被其他的MCU处理的,所以要验证上电瞬间数据的准确性    不能有乱码 ...

你想法不对,应该假设通讯有乱码如何不错误动作

出0入0汤圆

 楼主| 发表于 2016-9-6 19:44:45 | 显示全部楼层

程序中有1秒延时,并没作用

出0入0汤圆

 楼主| 发表于 2016-9-6 19:53:00 | 显示全部楼层
NJ8888 发表于 2016-9-6 19:42
你想法不对,应该假设通讯有乱码如何不错误动作

也就说,要对数据进行处理,接收到正确的数据,才执行正确的动作

出0入0汤圆

发表于 2016-9-6 19:53:20 来自手机 | 显示全部楼层
延时加长点呢?还有就是接收端有缓冲。乱码也被存下来了。

出0入0汤圆

发表于 2016-9-6 19:54:08 | 显示全部楼层
注意程序初始化顺序,个人习惯的顺序是:IO、外设、中断。

出10入210汤圆

发表于 2016-9-6 20:10:22 来自手机 | 显示全部楼层
楼主用了大字体吗?

出10入210汤圆

发表于 2016-9-6 20:11:40 来自手机 | 显示全部楼层
好大的字啊!

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2016-9-6 20:12:05 | 显示全部楼层
rainbow 发表于 2016-9-6 20:10
楼主用了大字体吗?

是的

出0入0汤圆

 楼主| 发表于 2016-9-6 20:16:31 | 显示全部楼层

太夸张了    电脑上没那么大

本帖子中包含更多资源

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

x

出50入8汤圆

发表于 2016-9-6 20:39:34 | 显示全部楼层
TUDOU2015 发表于 2016-9-6 20:16
太夸张了    电脑上没那么大

ID还要不?

出0入0汤圆

发表于 2016-9-6 21:46:41 | 显示全部楼层
TUDOU2015 发表于 2016-9-6 20:16
太夸张了    电脑上没那么大

楼主发贴时候看看版规,小心ID

出0入8汤圆

发表于 2016-9-6 21:57:46 | 显示全部楼层
上电,程序运行后发出若干个个起始字节,比如 A5 ,  给收端检验,然后再正常的通讯。

出0入0汤圆

 楼主| 发表于 2016-9-7 08:25:08 | 显示全部楼层
Put_down 发表于 2016-9-6 21:57
上电,程序运行后发出若干个个起始字节,比如 A5 ,  给收端检验,然后再正常的通讯。 ...

目前采用的数据格式 A5 XX  XX  XX  XX XX   校验  0A  

出0入0汤圆

发表于 2016-9-7 08:34:27 | 显示全部楼层
单片机上电别急着工作,延时500ms后再开始配置寄存器。

出0入0汤圆

发表于 2016-9-7 09:48:34 | 显示全部楼层
楼主ID不保  还不改

出0入0汤圆

 楼主| 发表于 2016-9-7 10:08:31 | 显示全部楼层
dalarang 发表于 2016-9-7 08:34
单片机上电别急着工作,延时500ms后再开始配置寄存器。

延时放在初始化前,或者后面都没有作用,发现232与PC通信端引脚在上电瞬间有尖峰脉冲,加入双向TVS管后效果也没改善。   
怀疑这是232通信IC(ADM101E)的特性,上电瞬间内部的寄存器的值不确定造成 (暂时是这样理解的 )

出10入210汤圆

发表于 2016-9-7 10:09:35 | 显示全部楼层
TUDOU2015 发表于 2016-9-6 20:16
太夸张了    电脑上没那么大

手机上看就是这么大。

出0入12汤圆

发表于 2016-9-7 10:23:35 | 显示全部楼层
找找,是不是PIC这头的问题,而不是232这边.主要是上电IO口,外设开关这类的.PIC没用过,不明白

出0入0汤圆

 楼主| 发表于 2016-9-7 10:34:04 | 显示全部楼层
本帖最后由 TUDOU2015 于 2016-9-7 10:37 编辑
skynet 发表于 2016-9-7 10:23
找找,是不是PIC这头的问题,而不是232这边.主要是上电IO口,外设开关这类的.PIC没用过,不明白 ...


PIC这边没有问题,上电瞬间我用示波器捕捉过波形,观察不到乱码时的波形,只观察到返回数据的波形,经过测试验证到,禁止232IC工作时,也会有一个乱码被串口接收到,验证了确实是232IC这边出的问题

出0入12汤圆

发表于 2016-9-7 10:49:54 | 显示全部楼层
那就换1种232接口芯片试试了.把TX,RX割断飞线咯.上个FT232之类的玩玩看看,实在不行就用三极管自己搭1个,^_^

出0入0汤圆

发表于 2016-9-7 10:55:11 | 显示全部楼层
目测ID即将不保。

出0入0汤圆

发表于 2016-9-7 12:17:11 | 显示全部楼层
做个数据判断,正确的就要,不正确的就扔掉,我都是用状态机做的,有乱码也不怕。

出0入46汤圆

发表于 2016-9-7 12:38:13 | 显示全部楼层
用软件过滤最简单了。数据可以先发送一个固定的头,数据结尾加crc16验证码

出0入0汤圆

 楼主| 发表于 2016-9-7 13:01:36 | 显示全部楼层
yutianyiren 发表于 2016-9-7 12:17
做个数据判断,正确的就要,不正确的就扔掉,我都是用状态机做的,有乱码也不怕。 ...

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

本版积分规则

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

GMT+8, 2024-4-19 21:14

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

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