51单片机串口通信乱码。。。闹不清什么问题= =

超级冷兔 超级冷兔 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
串口显示的应该是“0123456789jiuehskdjfHSKLJsdla47547237836876357425687361463543”,但是当MemoryModel在data里时收到的是“0123456789jiuehskdjfHSKLcdlA4794723w:3w876357425687361463543”,在pdata里收到的是“0123456789jiuehskdjfHSKLJsdla47547x>ëòêòéòäýüx>âû?1463543”,在xdata里收到的是”?å‚)õ‚åƒ:õƒä“"Óï?“,在send_ARRAY里加延时也不行。。。这是怎么回事呢??应该怎样避免?
#include<reg52.h>

#define uint unsigned int
#define uchar unsigned char

uchar array[]="0123456789jiuehskdjfHSKLJsdla47547237836876357425687361463543";

void init(void)
{
PCON=0x00;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
//IT0=1;
EA=1;
ES=1;
//EX0=1;
}

void delayms(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}

void send_BYTE(uchar ch)
{
SBUF=ch;
while(!TI);
TI=0;
}

void send_ARRAY(uchar *a)
{
uint i=0;
while(a[i]!='\0')
{
send_BYTE(a[i]);
i++;
//delayms(1);
}
}

void main()
{
delayms(300);
init();
delayms(300);
send_ARRAY(array);
while(1);
}
...全文

相关推荐

评论 15
收藏 已收藏
分享
返回顶部
超级冷兔
单片机/工控 27,522 成员 28,796 内容