共工科技

51单片机ttl传输乱码(51单片机ttl串口)

本篇目录:

我用单片机串口传数据给电脑,传的是一个计时器,单用串口调试工具接收到...

将自己的启动信息、过程信息主动发到运行有超级终端的主机;将接收到的字符返回到主机,同时发送需要显示的字符(如命令的响应等)到主机。

必须在单片机上编写程序,程序的功能是将从键盘的获取到的数据通过串口发送出去。单片机串口参数(如波特率、数据位、停止位、奇偶校验位等)须与电脑设置一致。

51单片机ttl传输乱码(51单片机ttl串口)-图1

可以用下面方法检查可能的原因:首先检查硬件有无问题。检查串口线是否满足要求,是直连的还是交叉的,这一点很重要。检查程序是否正确。可以连续发送数据,用示波器测量单片机串口输出端是否有信号输出。

之后一个自己定义为命令的类型(如:0x01 表示电动机的转动方向;0x02 代表转动圈数等),之后跟上实际要发送给单品机的数据,如正传还是反转,转动的圈数是多少等。

所以程序一直执行到程序存储器结尾(如89C51为0FFFH,89C52为1FFFFH等),由于后面没有实际的程序空间,之后PC指针会映射在有实际空间的部分,也就又从头开始执行。这样,程序周而复始,就会不断发送数据。

51单片机ttl传输乱码(51单片机ttl串口)-图2

51单片机串口通信乱码问题

可能晶振有问题 一般12MHz发送9600波特率的数据就可能出现乱码,接收错误。应该使用10592MHz的晶振。

距离 与 波特率 有关系,在调试过程,可以用较低的波特率 试试。

检查一下你的晶振是否为10592MHz这种频率(或者是这个数的倍数),这样的频率分频出来的波特率才是标准的波特率,否则会有误差导致数据接收不正确。你用两块单片机对着发,只要晶振频率一样,是没问题的。

51单片机ttl传输乱码(51单片机ttl串口)-图3

单片机串口打印乱码的解决方法我使用的是stc的89c52rc型号,晶振是12m。是因为买的最小系统就是这个频率。使用波特率位9600,将TL、TH都设置成0xfd后不管是英文还是中文的都是乱码。

比如发送abcdefghi,就回送I get aI get bI get cI get dI get eI get fI get gI get hI get i;但是结果总是有一部分数据被忽略掉,...--- 每当收到一字节,就回送七字节。时间上,明显不同。

为什么51单片机串口接收全是框

1、接收寄存器故障。由于51单片机的一些usb转ttl芯片不能完全隔离两边的信号,当使用主机usb口供电的时候,主机信号就会越过转换芯片影响串口的电平,导致接收寄存器数据错误,出现一些错误框。

2、单片机和电脑设置的波特率不一致。晶振性能较差,其频率很不稳定,导致波特率误差过大。

3、我不知道你看到的框图是个什么样的。正常来说51单片机的串口里面是有两个移位寄存器模块的,一收一发,都由内部时钟及逻辑驱动(异步收发)。

4、单片机发送的是ASCII码,所以,串口助手接收时,要显示字符型,即十六进制显示的选项不要打勾。

5、首先,你的程序没有问题,不能接收数据,从以下几个原因找:这是在实验板上做测试吗,那看一下实验板上单片机的晶振频率是不是10592MHz,必须是这个频率,否则就无法接收数据。

到此,以上就是小编对于51单片机ttl串口的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇