51单片机串口的问题

时间:2013-01-16来源:网络

想问一下:单片机串口在接收的时候是怎么接收的?如上位机一次发送一个字符串11223344,通过串口助手下发给单片机。用下面的程序
/***********************************************************/
/* 串口中断程序 */
/********************************************************/
void UART_SER () interrupt 4
{

uchar Temp; // 定义临时变量

if(RI) // 判断是接收中断产生

{

RI=0; // 标志位清零

Temp=SBUF; // 读入缓冲区的值

P1=Temp; // 把值输出到 P1 口,用于观察

SBUF=Temp; // 把接收到的值再发回电脑端

}

if(TI) // 如果是发送标志位,清零

TI=0;
}

单片机能够把上位机的数据全部接收后原样传输回去
------------------------------------

我修改了一下程序:,把上面的判断改为

if(RI) // 判断是接收中断产生

{

RI=0; // 标志位清零

Temp=SBUF; // 读入缓冲区的值

P1=Temp; // 把值输出到 P1 口,用于观察

SBUF=Temp; // 把接收到的值再发回电脑端

while(!TI);

TI=0;

SBUF='o';

}

1 2

关键词: 51单片机 串口中断 缓冲区

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版