51单片机串口的问题
想问一下:单片机串口在接收的时候是怎么接收的?如上位机一次发送一个字符串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';
}
评论