A. 如果单片机系统检测到端口的信号不太稳定,可能存在的问题在哪里怎么解决
1.信号加相应的滤波电容,吸收干扰
2.端口接上拉电阻,一般用4.7K
3.信号采集可用光耦等隔离
4.在单片机软件中对检测的端口进行数字滤波处理,比如连续采集10个数,用尘衫冒泡法对10数进行从小到大排序,取中间一位值,或去掉最大最小值再取平均指兄丛值。
5.找出干扰源,比如附唯樱近有高频线路、电磁干扰,离远一些。
B. 单片机系统通讯不稳定
描述的不够详细,很难判断是什么原因
不通讯的时候单片机死机了没
如果没 ,那单片机TXD端口有数据没?
如果有,485的AB有数据没?
再看看485的收发控迹弯制是否岁州裂正确??
一乎闭点一点的查,你描述的越详细,我们的提议就离真理越近
C. 单片机io口输出不稳定怎么解决
1.检查io口驱动电路电路是否正常,比如检查电阻、电容和变压器是否正常樱型;
2.检查io口输出信号的电平是否符合要求;
3.检查单片机的工作电压是否稳定;
4.检查单片机的软件代码是否正确,确保io口的操作和控制正确;
5.检查io口的信号线是否有干扰,确保信号线的源颂闭屏蔽和线路的完整性;
6.检查io口的结构是否正确,确保io口的结构不会影响io口的输出;
7.检查io口的输出环境是否适当,排除外界条件对io口输出的影响;
8.检查单片机的io口是否有虚拟连接,确保io口的输出状态不受其他io口的影响;
9.检查io口的接口是否有松动,确雹裂保io口的接触良好;
10.检查io口的输出电压是否合适,确保io口的输出电压不会影响其他部件的正常工作。
D. 什么因素会导致单片机运行过程中突然复位及不稳定。
1是电磁干扰,强烈的电磁干扰会导致单片机重启,比如大功率电机突然启动,大功率压缩机启动的电磁辐射有可能!(有可能)!2是电压不稳定。(个人经验暂时只发现两种)。
E. 单片机串口通信时而正常,时而不正常,硬件没问题,应该是时序问题,一般会有什么时序问题呢
问题原因可能是如下几个方面:
1、是否使用的是USB转串口的转换线?这种方式目前出问题太多了,系统正常运行状态下还好点,如果单片机设备频繁上下电问题就特别多,而且好像没有太好的解决方法。
2、通讯双方的协议是否不匹配?波特率不说了,还有比如是否都是1个起始位+8个数据位+1个停止位,二者应一致。
3、PC机一端问题。这种可能性不大,如果使用的是串口调试助手之类的软件就更不会有问题。
4、单片机一端软件可能有问题。而且问题出在接收时的可能性较大。具体的:
a、在软件流程中是否有对REN控制位修改的指令?如果有需要检查当REN=0时的相关语句。
b、应特别关注TI的清零操作。接收时RI有效后将数据读入内存、清RI标志,即可退出接收操作;而发送时【最后1个字节送入SBUF后,发送操作并未完成】,【必须等待这次发送完成后TI置位,然后清0】,才能根本上保证下次操作的正确性的情况。
c、如果串口收发未使用中断方式,需要检查主程序流程中是否有较长时间的延时程序,会不会造成数据接收遗漏的情况。以9600波特率为例,1个字节的发送或接收需要差不多1ms的时间,延时操作如果有超过1ms的就可能会造成数据丢失。
d、其它中断处理软件是否会长时间占用CPU资源,使得串口数据的接收出现数据丢失情况?串口如果采用了中断,其中断级别是否是高级别?
5、设备运行环境。是否有外部强电磁干扰?比如电机的起停。处理方法就说不清了。
F. 串口与单片机通讯时好时坏
首先试试串口好使不。。。。
拿PC机打开个串口调试软件,将RXD与TXD拿个导线短接一下。。。之后键烂用软件发送随便一些数据,由于TXD与RXD是短接的,那么软件接收到的数据应该是和发射数据一致,如果不一致,线坏棚裤了,如果彻底就收不到,线怀了,多试几次,时好时坏,线接触不良。。。
如果一切正常,那么就得看单片机的串口接口是不是好的了,示波器也行,万用表也行,测测看。。。
如果一切良好,软件问题,自己写的程序的时序有问题。嘛,由于单片机有很多种,我也就会那么两三种,TTL转PC电平你用的那稿和漏种IC也不知道,所以,自己检查程序时序问题吧。。。
G. 单片机串口通信,串口助手调试收发都正常,接到一块就不正常了
每片单片机单独与串口助手通信成功。说明你的2个单片机串口通信都很正常,
但2个单片机合在一起就通信不成功,发送、接受不到数据!很可能是以下原因:
1)仔细检查2片单片机的脚,rx
tx
交叉接且要共地。
2)串口助手通信是采用中断接收触发信号的,反应迅速且准确,你单片机也可采用外部中断作触发,用定时器来读取数据,一般比较迅速准确。
3)你可以发送0x55
或
0xaa,这样的值来确定接收数据是否会正常。
如果还是不行,你用示波器监视下,看看数据发送口是否有数据传送?