linux和单片机串口通信是乱码,单片机串口通信中文时易出现乱码?求大神指点!...

/***************************************************************************************/

#include "reg52.h"

#define uchar unsigned char

#define uint unsigned int

#define error 0

uchar flag;

uchar temp;

/***************************/

void delay(uint z)

{

uint x,y;

for(x=0;x<110;x++)

for(y=0;y

}

/*********串口初始化*******/

void Uart_Init(void)                //9600bps@12.000MHz

{

PCON &= 0x7F;                //波特率不倍速

SCON = 0xD0;                //8位数据,可变波特率

TMOD &= 0x0F;                //清除定时器1模式位

TMOD |= 0x20;                //设定定时器1为8位自动重装方式

TL1 = 0xFD;                //设定定时初值

TH1 = 0xFD;                //设定定时器重装值

ET1 = 0;                //禁止定时器1中断

TR1 = 1;                //启动定时器1

}

/********发送一个字节****/

void Uart_SendByte(uchar dat)   //9位 (1校验位)

{

ACC=dat;

TB8=P;

SBUF=dat;

while(TI==0);

TI=0;

}

/**************************/

void Uart_SendStr(uchar *s)

{

uchar i;

for(i=0;s[i]!='\0';i++)

{

ACC=s[i];

TB8=P;

SBUF=s[i];

while(TI==0);

TI=0;

}

delay(800);

}

/*************************/

uchar Uart_Receive()

{

uchar dat,buf;

if(RI==1)

{

dat=SBUF;

ACC=dat;

if(RB8==P)

{

buf=dat;

RI=0;

return buf;

}

else

{

RI=0;

return error;

}

}

}

/*******************/

void main()

{

Uart_Init();

ES=1;

EA=1;

while(1)

{

Uart_SendStr("狂奔的蜗牛哥 !");

Uart_SendStr("\n");

delay(5000);

Uart_SendStr("START.......");

delay(5000);

}

}

/************串口中断*****************/

void Uart_ser()interrupt 4

{

temp=Uart_Receive();;

}

单片机串口通信中文时易出现乱码?求大神指点!

没发好,变绿了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值