亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
單片機串口發送數據為什么要先關串口中斷?發送數據與字符串有什么區別?
[打印本頁]
作者:
不想12453
時間:
2018-5-10 10:03
標題:
單片機串口發送數據為什么要先關串口中斷?發送數據與字符串有什么區別?
第一個是單片機串口發送數據的程序 可是為什么需要先關串口中斷?發送完數據再開串口中斷呢??還有。!發送串口數據與發送字符串有什么區別呢?
單片機源碼:
/*----------------------------
UART1 發送串口數據
-----------------------------*/
void UART1_SendData(uchar dat)
{
ES=0; //關串口中斷
SBUF=dat; //將數據放入發送數據緩沖器中
while(TI!=1); //等待發送成功 TI=1時表示一幀數據發送成功,要求CPU取走SBUF里的數據
TI=0; //清除發送中斷標志 TI必須軟件清零
ES=1; //開串口中斷
}
/*----------------------------
UART1 發送字符串
-----------------------------*/
void UART1_SendString(char *s)
{
while(*s)//檢測字符串結束符
{
UART1_SendData(*s++);//發送當前字符
}
}
復制代碼
作者:
liunian17
時間:
2018-5-10 11:00
我知道的是,不需要關閉中斷的,中斷是為了接受數據而不是發送數據的。
發送數據和發送字符串是一樣的,字符串就是數據。只是發送只能一個一個字符去發,所以發送字符串要拆開來一個一個字符發
作者:
wulin
時間:
2018-5-10 11:27
1.串口發送數據時不能被接收中斷干擾,所以要關閉串口接收中斷。
2.串口發送程序一次只能發送一個字節,如果要發送字符串,就要反復調用發送程序,直到發送完畢。
作者:
top_行癲
時間:
2018-5-10 12:07
關串口中斷只是一種嚴謹的方式,其實不關你的程序應該也可以。其次字符串的發送跟字節本質上是一樣的,只不過是將字符串按一個個字節連續發送而已
作者:
guo6339419
時間:
2018-5-10 15:02
是怕發送的過程中被接收中斷打斷吧
作者:
zfgansuchina
時間:
2018-5-10 16:52
發送串口數據是指發送一個字節,每個字符是2個字節,因此發送字符串其實是發送2*n個字節
作者:
yzwzfyz
時間:
2018-5-10 18:37
不知道是哪個高手老師教一招!
我是這樣做的:
1、將要發的數據統統放在一個緩沖區中,假設有N個字節。
2、打開中斷
3、發一個字節,發完后就干別的事了!之后,當這個字節發完后就產生了中斷。
4、在發送中斷處理程序中,判斷一下是否N個字節是否全發完了,未完就續發下一個字節,退出中斷服務程序。
5、退出后,又干別的事了!再之后,這個字節發完后就產生了中斷。
……4-5-4-5-4-5-……
自打開機初始化后,就沒有關過串口中斷。!
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1