当前位置:首页 > 科技动态 > 正文

为什么我的串口一直在发00

为什么我的串口一直在发00

51单片机串口通讯总是发送00 1、改进电源和开关电路,尽量减小这种影响。采用一定的协议与上位机端的通讯,屏蔽干扰,这也是最重要的。2、应该会在上电时随机发送一个数据,...

51单片机串口通讯总是发送00

1、改进电源和开关电路,尽量减小这种影响。采用一定的协议与上位机端的通讯,屏蔽干扰,这也是最重要的。

2、应该会在上电时随机发送一个数据,这是由于上电时状态不太稳定造成的,解决办法是程序开始加一个几十毫秒的延时。

3、可以发送多次,分别发这个数的个十百千万位。

4、我也遇见过这种情况,原因是波特率和晶振的关系,比如用10592MHz的晶振算出来的寄存器值在12MHz时就会有这个错误。你可以把寄存器(51是TH1和TL1)增加1或者减少1,再试一下,应该有一种是对的。

5、51单片机串口发不出去 51单片机一次只能接收1个字节数据(8位),若要接收两个字节,串口应该分成两字节发送。比如先发送高字节,再发送低字节。对于 100H,按十六进制发送 01 00,单片机收到第一字节数据保存起来,收到第二字节后将两个8位数合并成16位数。

6、单片机串口通信是全双工的,发送和接受可以同时进行。不可以同时进行的是半双工。全双工方式分别由两根不同的传输线传送数据时,通信双方都能在同一时刻进行发送和接收操作,通信的每一端都设置了发送器和接收器,因此,能控制数据同时在发送和接受两个方向上传送。

proteus串口都是00

1、有以下几个原因:硬件问题、设置不正确、代码问题。硬件问题:实际的硬件进行测试,存在接线、端口配置等硬件问题导致数据传输失败或数据错误,检查硬件设计是否符合要求。

2、串口通信,控制波特率的是定时器T1,不是T0,所以下面的两行 TH0=0xFD;TL0=0xFD;应该改成 TH1=0xFD;TL1=0xFD;要双击单片机,将晶振频率改为10592M 为什么要串联一个电流表呢,想测电流吗,是测不出来的,要去掉。

3、一般而言这是单片机开机时状态不稳造成的,可以说是干扰信号。

4、有可能是单片机发送的波特率太低。远低于9600.如果是使用的STC的单片机,记得在时选择使用外部晶振。检查硬件有没有问题检查有没有问题,特别是波特率、校验位等等细节。

最新文章