|
第一個(gè)是單片機(jī)串口發(fā)送數(shù)據(jù)的程序 可是為什么需要先關(guān)串口中斷?發(fā)送完數(shù)據(jù)再開(kāi)串口中斷呢??還有。!發(fā)送串口數(shù)據(jù)與發(fā)送字符串有什么區(qū)別呢?
單片機(jī)源碼:
- /*----------------------------
- UART1 發(fā)送串口數(shù)據(jù)
- -----------------------------*/
- void UART1_SendData(uchar dat)
- {
- ES=0; //關(guān)串口中斷
- SBUF=dat; //將數(shù)據(jù)放入發(fā)送數(shù)據(jù)緩沖器中
- while(TI!=1); //等待發(fā)送成功 TI=1時(shí)表示一幀數(shù)據(jù)發(fā)送成功,要求CPU取走SBUF里的數(shù)據(jù)
- TI=0; //清除發(fā)送中斷標(biāo)志 TI必須軟件清零
- ES=1; //開(kāi)串口中斷
- }
- /*----------------------------
- UART1 發(fā)送字符串
- -----------------------------*/
- void UART1_SendString(char *s)
- {
- while(*s)//檢測(cè)字符串結(jié)束符
- {
- UART1_SendData(*s++);//發(fā)送當(dāng)前字符
- }
- }
復(fù)制代碼
|
|