6.2.4 狀態(tài)寄存器USART_SR
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
- | |||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
- | CTS | LBD | TXE | TC | RXNE | IDLE | ORE | NE | FE | PE |
Bit 9:CTS標(biāo)志(如果設(shè)置了CTSE位,當(dāng)nCTS輸入變化狀態(tài)時(shí),該位被硬件置高,由軟件將其清零)
0:nCTS狀態(tài)線上沒有變化
1:nCTS狀態(tài)線上發(fā)生變化
Bit 8:LIN斷開檢測標(biāo)志(當(dāng)探測到LIN斷開時(shí),該位由硬件置1,由軟件將其清零)
0:沒有檢測到LIN斷開
1:檢測到LIN斷開
Bit 7:發(fā)送數(shù)據(jù)寄存器空
當(dāng)TDR寄存器中的數(shù)據(jù)被硬件轉(zhuǎn)移到移位寄存器時(shí),該位被硬件置位,對USART_DR的寫操作,將該位清零。
0:數(shù)據(jù)還沒有被轉(zhuǎn)移到移位寄存器
1:數(shù)據(jù)已經(jīng)被轉(zhuǎn)移到移位寄存器
Bit 6:發(fā)送完成
當(dāng)包含有數(shù)據(jù)的一幀發(fā)送完成后,并且TXE=1時(shí),由硬件將該位置’1’。然后寫入U(xiǎn)SART_DR清除該位。
0:發(fā)送還未完成
1:發(fā)送完成
Bit 5:讀數(shù)據(jù)寄存器非空
當(dāng)數(shù)據(jù)被轉(zhuǎn)移到USART_DR寄存器中,該位被硬件置位。對USART_DR讀操作可以將該位清零。
0:數(shù)據(jù)沒有收到;
1:收到數(shù)據(jù),可以讀出
Bit 4:檢測到總線空閑
當(dāng)檢測到總線空閑時(shí),該位被硬件置位,則產(chǎn)生中斷。先讀USART_SR,然后讀USART_DR清除該位。
0:沒有檢測到空閑總線
1:檢測到空閑總線
Bit 3:過載錯誤
當(dāng)RXNE仍然是1的時(shí)候,當(dāng)前被接收在移位寄存器中的數(shù)據(jù),需要傳送至RDR寄存器時(shí),硬件將該位置位,先讀USART_SR,然后讀USART_CR清零。
0:沒有過載錯誤
1:檢測到過載錯誤
Bit 2:噪聲錯誤標(biāo)志
在接收到的幀檢測到噪音時(shí),由硬件對該位置位。先讀USART_SR,再讀USART_DR清0。
0:沒有檢測到噪聲
1:檢測到噪聲
Bit 1:幀錯誤
當(dāng)檢測到同步錯位,過多的噪聲或者檢測到斷開符,該位被硬件置位。先讀USART_SR,再讀USART_DR清零
0:沒有檢測到幀錯誤
1:檢測到幀錯誤或者break符
Bit 0:校驗(yàn)錯誤
在接收模式下,如果出現(xiàn)奇偶校驗(yàn)錯誤,硬件對該位置位。依次讀USART_SR和USART_DR清零,在清除PE位前,軟件必須等待RXNE標(biāo)志位被置1。
0:沒有奇偶校驗(yàn)錯誤;
1:奇偶校驗(yàn)錯誤
6.3 printf函數(shù)重映射
學(xué)習(xí)C語言的時(shí)候會經(jīng)常用到一個函數(shù),就是格式化輸出printf,這個函數(shù)的源代碼如下所示。
從上圖可以看出來,printf函數(shù)實(shí)際上的核心是putchar函數(shù),在KEIL中,由于我們使用了MicroLIB,所以putchar函數(shù)改為了fputc函數(shù),此時(shí),我們只需要修改fputc函數(shù)就可以完成printf重定向,重定向代碼如下圖所示。
6.4 串口例程
使用printf函數(shù)將串口接收到的字符串發(fā)送出去。
(1)底層寄存器文件stm32f10x.h添加串口寄存器地址。
(2)在SYSTEM目錄下新建usart1目錄,并在usart1目錄下新建usart1.c和usart1.h兩個文件。
(3)將usart1.c和usart1.h兩個文件加入工程。
(4)在usart1.c文件內(nèi)寫入以下代碼。
(5)在usart1.h添加以下代碼。
(5)在1.c文件中添加以下代碼。
6.5 實(shí)驗(yàn)結(jié)果
-
單片機(jī)
+關(guān)注
關(guān)注
6039文章
44583瀏覽量
636497 -
STM32
+關(guān)注
關(guān)注
2270文章
10910瀏覽量
356605 -
USART
+關(guān)注
關(guān)注
1文章
195瀏覽量
30899
發(fā)布評論請先 登錄
相關(guān)推薦
評論