51單片機串口的問題
想問一下:單片機串口在接收的時候是怎么接收的?如上位機一次發(fā)送一個字符串11223344,通過串口助手下發(fā)給單片機。用下面的程序
/***********************************************************/
/* 串口中斷程序 */
/********************************************************/
void UART_SER () interrupt 4
{
uchar Temp; // 定義臨時變量
if(RI) // 判斷是接收中斷產(chǎn)生
{
RI=0; // 標志位清零
Temp=SBUF; // 讀入緩沖區(qū)的值
P1=Temp; // 把值輸出到 P1 口,用于觀察
SBUF=Temp; // 把接收到的值再發(fā)回電腦端
}
if(TI) // 如果是發(fā)送標志位,清零
TI=0;
}
單片機能夠把上位機的數(shù)據(jù)全部接收后原樣傳輸回去
------------------------------------
我修改了一下程序:,把上面的判斷改為
if(RI) // 判斷是接收中斷產(chǎn)生
{
RI=0; // 標志位清零
Temp=SBUF; // 讀入緩沖區(qū)的值
P1=Temp; // 把值輸出到 P1 口,用于觀察
SBUF=Temp; // 把接收到的值再發(fā)回電腦端
while(!TI);
TI=0;
SBUF='o';
}
評論