byhunpo 2018-06-08 08:19 采纳率: 0%
浏览 1561
已结题

51单片机串口通讯字符错位

程序设定波特率4800,单片机输出的是3c 38 38 38 38 38 38 38 38,但是串口显示的却是D8 EC EC EC EC EC EC EC 00,程序上实在找不到错误,更改代码切到9600也是这样,显示的错位字符都一样。个人认为不像是乱码,乱码应该很乱,接收到的字符不规律,这个非常规律,接收到的全都是D8 EC EC EC EC EC EC EC 00,几乎都不会错。硬件上已经换了两个单片机,重新焊了一块版。此外将该程序烧在之前做的一些板上都正常输出。以下是代码

#include
#define uchar unsigned char
#define uint unsigned int
void PORT_Init (void)
{
P0MDOUT = 0x17;
XBR0 = 0x01;
XBR1 = 0xC1;
}
void UART0_Init (void)
{
SCON0 = 0x50;
//TH1 = 0x64;
TMOD = 0x20;
CKCON = 0x01;
TH1 = 0x60;
TL1 = TH1;
TR1 = 1;
TI0 = 1;
}
void main()
{
char g;
int z;
PCA0MD &= ~0x40;
OSCICN = 0x81;
PORT_Init();

UART0_Init();
while(1)
{
g = 0x3c;
SBUF0=g;
while(TI0==0);
TI0=0;
for(z = 0;z < 8; z++){
g = 0x38;
SBUF0=g;
while(TI0==0);
TI0=0;
}
delay(50000);
}
}

跪求大佬帮忙……折磨半个月了……

  • 写回答

15条回答 默认 最新

  • threenewbee 2018-06-08 08:49
    关注

    串口调试助手看下,检查单片机程序、连线有没有连好,波特率、停止位、校验位的设置等。

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料