历史上的今天

今天是:2024年10月09日(星期三)

正在发生

2018年10月09日 | 单片机串口设置问题

发布者:EternalBliss 来源: eefocus关键字:单片机  串口设置 手机看文章 扫描二维码
随时随地手机看文章

最近测试涉及到底层串口代码的修改。经过这次修改,突然发现其实自己对于串口的一些特性以前并不是十分清楚。

首先遇到的一些问题:

1)在使用IO的数据位的时候,没有考虑校验位所占的位数。

2)在设置串口输入的时候,使用悬空输入。

关于1),在一次使用STM32串口参数9600,N,8,1与另一个 8051MCU通信的时候发现偶校验没有问题,但是无校验通信就出现异常。但是,当将STM32与电脑通信的时候,偶校验与无校验通信又完全都是正确的。8051MCU单独与电脑通信也都是完全正确的。查看代码,还真不知道有什么不对劲的。因为这段代码,用了很长时间了。后来一个同事看代码后,提醒说对于数据位的设置,偶校验和无校验是一致的,既然没有数据位,有可能会少一位。从这点看,这段代码可以修改看看。于是在这个地方,将偶校验的时候数据位长度设置为9bit,无校验的时候设置为8bit。重新测试,发现通信正常了。

原来这段代码,由于一直用偶校验进行通信,所以对于奇校验和无校验的参数设置,没有测试过。虽然,已经存在很长时间,但是由于一直没有用到奇校验和无校验,于是这个BUG。一直潜伏到现在。直到这次使用到才发现。

关于2),是在一次使用中发现,串口线的连接如果与从机分离,则串口上会莫名接收到一些00数据。一开始没有在意,以为是离开确定电平后,导致的什么干扰造成的。但是,没有去考虑是什么造成接收这么容易受干扰。直到有一次,和同事确认串口的初始化电平设置时,他告诉说是悬空设置。这下子感觉不对了,悬空很容易造成受干扰。于是马上查看串口的初始化代码,发现确实是悬空设置。马上修改了。在测试,将连接的串口悬空,也没有再收到。

后来查看了关于串口的内容发现以前有些东西没有注意到:

串口分为同步串口,异步串口。

这里说的串口指通常说的UART异步串行通信接口。

还有就是同步串口,即SPI,I2C之类。

首先,UART不需要接收和发送两端严格的时钟同步,在不通信的时候IO电平呈现高电平,即空闲。所以对于UART来说,如果没有数据交互,数据线是呈现高电平的。

对于UART的数据位问题,是包含数据 校验的bit数总和。

为了提高UART的抗干扰性,无论在哪一种工作模式下,都能够保证数据线上有稳定的电平。所以串口设置时,对于串口输入引脚设置为上拉输入。对于串口的设置,输出一般设置为push-pull,输入一般设置为pull up。

(这里有一个疑问,为什么串口还会留下悬空输入?既然一般情况下,上拉输入对于接收方而言会处于一个比较稳定的状态。如果将输入设置为悬空输入反而会引入接收不稳定的因素,为什么会有悬空输入。在什么地方,又会使用悬空输入呢?在不同电压的时候可能是一种情况,及3.3VTTL电平的CPU,与5.0VTTL的CPU直接使用串口通信的时候,为了避免电平问题采用悬空有可能是一个种情况。)

这里也提出一个问题,对于系统的底层代码要格外严谨。保证开发出来的代码,有高的稳定性,可靠性。才能保证其他程序顺利开发。

同时对于代码的测试要尽可能覆盖所有代码。对于开发过程中,引入的功能及代码要进行实际测试,明确其执行到的时候对于程序的影响。没有运行过的代码,在程序中就是一座可能喷发的活火山。所以对于添加的功能及代码,要确保执行过。

在开发过程中,要时刻保持警惕,警惕可能出现异常的地方,学着用推理去找到BUG的巢穴。


关键字:单片机  串口设置 引用地址:单片机串口设置问题

上一篇:51单片机中的定时器和计数器
下一篇:输入输出设备I/O设备总结

推荐阅读

致力于将数据转化为行动和价值的Splunk公司(NASDAQ: SPLK)宣布助力客户以数据驱动未来业务发展的技术和产品愿景。凭借在机器学习、性能和规模方面进行的一系列创新,全新版的Splunk Enterprise®和Splunk Cloud™更容易提出问题,实现实时洞察并采取精准应对措施,通过访问不同位置和规模的数据,来提升业务成果。目前,Splunk Enterprise 7.2现已...
日本通过限制电子氢氟酸等出口制裁韩国,原稳定的供应关系被打破,中国大陆企业迎来历史机遇。目前中国部分公司已经取得实质性进展,随着日韩争端升级,产品替代有望进一步扩大。 报道称,三星电子和SK海力士寻找日产氟化氢替代材料的工作比预期进展顺利,预计到年底前后,可以完全替代日本产品。SK海力士计划尽快对韩国国内企业生产的氟化氢进行试用。 据...
10月1日,谷歌正式发布了年度旗舰手机Pixel5,搭载骁龙765G处理器,售价699美元。  中国台湾媒体DigiTimes援引日经评论消息称,这款5G手机在2020年的产量并不乐观。 消息人士指出,受到新冠肺炎疫情打击,谷歌2020年Pixel生产计划趋于保守,预计Pixel5年内生产量不到百万部,约为80万部左右。  Pixel5采用6英寸FHD+打孔屏,支持90Hz...
光电二极管是一种将光转换成电流或电压的二极管或光电探测器, 这取决于它是否在光伏 (zero-bi-as)或光电导 ( 反向偏置 ) 模式。当光电二极管是在反向偏置模式下,输出电流与施加在光电二极管结的光强度成正比。因此,光电二极管可以探测到非常柔弱小量的光,具有宽泛的应用范围:包括摄影,光探测器,医学成像仪器和光通信。 当光电二极管反向偏...

史海拾趣

问答坊 | AI 解惑

急寻电路方面人才

北京用友科技股份有限公司急寻电路方面的人才,工作地点在上海浦东阿尔卡特,希望有意向的朋友联系本人,因项目很急,急需人才,年前面试,年后上班,只要面试成功,薪资我们可以商量,有意向的直接回帖或者加QQ1294703115  Sherry 是这 ...…

查看全部问答∨

关于RTC的问题?

我想问一下ARM9中的RTC模块应该是被当做是驱动程序来实现还是被当做OAL层中的函数来实现,还有就是怎样在WINCE下调用RTC模块的函数???…

查看全部问答∨

wince 的屏幕显示问题?

我做了个系统下到开发板后,屏幕上显示的界面出现了偏差,没在屏幕中间,而且显示的界面颜色不正常,请问这是什么原因,该如何解决呢?…

查看全部问答∨

bootloader下载的问题

除了JTAG以外有没有其它把bootloader烧到NAND flash里面的方法? 我用的是本本,没有带串口、并口,用usb转了一个RS232出来,但是还是没有并口,所以JTAG用不了。…

查看全部问答∨

周立功和华为哪个待遇好?

周立功和华为哪个待遇好?…

查看全部问答∨

很好的电子设计大赛的资料哦

本帖最后由 paulhyde 于 2014-9-15 09:42 编辑 很好的电子设计大赛的资料哦,希望大家积极下载,哈哈哈哈~~ 大家记得帮我去投票哦,年度风云人物~~请投上你宝贵的一票哦~~ …

查看全部问答∨

STM32定时器捕获

                                 STM32有没有这种功能,在内部通道用一个定时器捕获另一个定时器PWM占空比…

查看全部问答∨

这段代码什么意思

`ifdef VENDORRAM // instantiation of a vendor\'s dual-port RAM VENDOR_RAM MEM (.dout(rdata), .din(wdata), .waddr(waddr), .raddr(raddr), .wclken(wclken), .clk(wclk)); `else reg [DATASIZE-1:0] MEM [0:DEPTH-1];    ...…

查看全部问答∨

主控板和驱动板选型

大家好,  我设计的系统里面有3个步进电机,9个直流电机,8个电磁阀.共计28路输出; 需检测25路输入. 也就是对IO口的需求是 28路输出, 25路输入. 该系统用于工业行业,要求系统可靠稳定. 在主控板选择时,我列出了OK6410, PC104, PLC.  &n ...…

查看全部问答∨

血氧饱和度检测仪处理芯片选型的问题

各位大虾好,小弟研二小生一枚,正在设计血氧饱和度检测仪(毕业设计用)。由于对51、avr单片机,arm、dsp等处理芯片不太了解,现将系统需求介绍下,希望各位大侠提出宝贵意见,给小弟指点则个。具体需求如下: 1、处理器自带A/D和D/A功能。系统的 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved