串口中断从单片机返回的数据错误
时间:10-02
整理:3721RD
点击:
想让电脑发送一个多位数据到单片机,单片机将数据加1后返回到电脑,但返回数据出错,发1,返回1;发12,返回2;发123,返回24,程序如下,请问代码错在哪了,还是我发送的时候什么没设置好
#include <reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
uint8 num = 0;
void UART_init(void)
{
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
ES = 1;
EA = 1;
}
main()
{
UART_init();
while(1);
}
void interrupt_uart() interrupt 4
{
if(TI)
{
TI = 0;
REN = 1;
}
if(RI)
{
RI = 0;
num = SBUF;
num++;
SBUF = num;
REN = 0;
}
}