www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1.介紹的串口部分會有如下優(yōu)缺點(diǎn):優(yōu)點(diǎn):簡單,適合很少量數(shù)據(jù)傳輸。(只要求這個(gè)優(yōu)點(diǎn),其實(shí)本可以不用串口中斷,但是為了知道來龍去脈,避免串口故弄玄虛,故加入中斷進(jìn)行串口發(fā)送的分析。)缺點(diǎn):無緩存區(qū),并且對

1.介紹的串口部分會有如下優(yōu)缺點(diǎn):

優(yōu)點(diǎn):簡單,適合很少量數(shù)據(jù)傳輸。(只要求這個(gè)優(yōu)點(diǎn),其實(shí)本可以不用串口中斷,但是為了知道來龍去脈,避免串口故弄玄虛,故加入中斷進(jìn)行串口發(fā)送的分析。)

缺點(diǎn):無緩存區(qū),并且對數(shù)據(jù)的正確性沒有判斷,數(shù)據(jù)量稍大可能導(dǎo)致數(shù)據(jù)丟失。

2.了解一些基礎(chǔ)知識:

TXE=1代表發(fā)送數(shù)據(jù)寄存器空。

TC=1代表移位寄存器傳輸完成。

TXEIE允許在TXE標(biāo)志為'1'時(shí)產(chǎn)生中斷

TCIE允許在TC標(biāo)志為'1'時(shí)產(chǎn)生中斷

畫個(gè)圖介紹數(shù)據(jù)傳輸:

串口發(fā)送數(shù)據(jù)

3.采用判斷TC的方式進(jìn)行串口中斷發(fā)送字符串.a.首先按照官網(wǎng)上的配置進(jìn)行(這么晚了,碼字太難了,直接上手寫版)

?官網(wǎng)配置

配置完了就得使能TC:

USART_ITCongfig(USART1,USART_IT_TC,ENABLE);

注意:此時(shí)使能了TC,在上述第6步里面會有 發(fā)送空閑幀的步驟。發(fā)送完畢,要是不加個(gè)清除TC標(biāo)志的程序,可能會丟失第1個(gè)字節(jié)的數(shù)據(jù),所以我們加上。

DelayMs(10);

USART_ClearFlag(USART1,USART_FLAG_TC);

注意:加完了還是會出現(xiàn)錯(cuò)誤,空閑幀沒發(fā)完,就清零發(fā)送完成標(biāo)志,導(dǎo)致使能TC之后就開始進(jìn)入中斷,故中間還加個(gè)延時(shí),如上。

2.發(fā)送數(shù)據(jù)函數(shù)

voidUSART_SendDataString(u8*pData)

{ pDataByte=pData;

USART_ClearFlag(USART1,USART_FLAG_TC);//作用和上面一樣,清除傳輸完成標(biāo)志位,否則可能會丟失第1個(gè)字節(jié)的數(shù)據(jù).

USART_SendData(USART1,*(pDataByte++));//必須要++,不然會把第一個(gè)字符t發(fā)送兩次}

3.中斷處理函數(shù)

voidUSART1_IRQHandler(void){

if(USART_GetITStatus(USART1,USART_IT_TC)==SET)

{if(*pDataByte=='