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