串口通信发送的内容与接收到的不一致 5
波特率设置都是9600,晶振11.0592voidInit_Uart(void){TMOD=0x20;//定时器T1使用工作方式2TH1=253;//设置初值TR1=1;...
波特率设置都是9600,晶振11.0592
void Init_Uart(void)
{
TMOD = 0x20; //定时器T1使用工作方式2
TH1 = 253; // 设置初值
TR1 = 1; // 开始计时
SCON = 0x50; //工作方式1,波特率9600bps,允许接收
PCON |= 0x80;
ES = 1;
EA = 1; // 打开所有中断
TI = 0;
RI = 0;
REN = 1;
}
void UART_SER (void) interrupt 4 //串行中断服务程序
{
uchar Temp; //定义临时变量
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
Temp=SBUF; //读入缓冲区的值
jing[count]=Temp; //把值输出到P1口,用于观察
if(count>=160)
{
count=0;
flag=1;
}
SBUF=Temp; //把接收到的值再发回电脑端
}
if(TI) //如果是发送标志位,清零
TI=0;
} 展开
void Init_Uart(void)
{
TMOD = 0x20; //定时器T1使用工作方式2
TH1 = 253; // 设置初值
TR1 = 1; // 开始计时
SCON = 0x50; //工作方式1,波特率9600bps,允许接收
PCON |= 0x80;
ES = 1;
EA = 1; // 打开所有中断
TI = 0;
RI = 0;
REN = 1;
}
void UART_SER (void) interrupt 4 //串行中断服务程序
{
uchar Temp; //定义临时变量
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
Temp=SBUF; //读入缓冲区的值
jing[count]=Temp; //把值输出到P1口,用于观察
if(count>=160)
{
count=0;
flag=1;
}
SBUF=Temp; //把接收到的值再发回电脑端
}
if(TI) //如果是发送标志位,清零
TI=0;
} 展开
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你发送的是字符,下面显示的是十六进制
追问
都是16进制呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询