日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]USART又叫通用同步異步收發(fā)器,塔提供了一種靈活的方法與工業(yè)使用標(biāo)準(zhǔn)NRZ異步春航數(shù)據(jù)格式的外部設(shè)備之間進行全雙工數(shù)據(jù)交換。USART利用分?jǐn)?shù)波特率發(fā)生器提供寬范圍的波特率選擇,支持同步單向通信和半雙工單線通信,

USART又叫通用同步異步收發(fā)器,塔提供了一種靈活的方法與工業(yè)使用標(biāo)準(zhǔn)NRZ異步春航數(shù)據(jù)格式的外部設(shè)備之間進行全雙工數(shù)據(jù)交換。USART利用分?jǐn)?shù)波特率發(fā)生器提供寬范圍的波特率選擇,支持同步單向通信和半雙工單線通信,也支持LIN(局部互聯(lián)網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù)組織)SIR ENDEC規(guī)范以及調(diào)制解調(diào)器(CTS/RTS)操作,它還允許多處理器通信,使用多換成器配置的DMA方式,可以實現(xiàn)高速數(shù)據(jù)通信。
USART寄存器控制框圖如下

可通過對 USART_CR1 寄存器中的 M 位進行編程來選擇 8(置0) 位或 9(置1) 位的字長。TX 引腳在起始位工作期間處于低電平狀態(tài)。在停止位工作期間處于高電平狀態(tài)。
空閑字符可理解為整個幀周期內(nèi)電平均為“1”(停止位的電平也是“1”),該字符后是下一個數(shù)據(jù)幀的起始位。
停止字符可理解為在一個幀周期內(nèi)接收到的電平均為“0”。發(fā)送器在中斷幀的末尾插入 1 或 2 個停止位(邏輯“1”位)以確認(rèn)起始位。
發(fā)送和接收由通用波特率發(fā)生器驅(qū)動,發(fā)送器和接收器的使能位分別置 1 時將生成相應(yīng)的發(fā)送時鐘和接收時鐘。

字符發(fā)送
USART 發(fā)送期間,首先通過 TX 引腳移出數(shù)據(jù)的最低有效位。該模式下,USART_DR 寄存 器的緩沖區(qū) (TDR) 位于內(nèi)部總線和發(fā)送移位寄存器之間。
每個字符前面都有一個起始位,其邏輯電平在一個位周期內(nèi)為低電平。字符由可配置數(shù)量的停止位終止。
USART 支持以下停止位:0.5(智能卡模式下接收數(shù)據(jù)使用)、1(默認(rèn))、1.(智能卡模式下發(fā)送與接收使用)5 和 2(正常USART模式,單線模式和調(diào)制解調(diào)器模式支持該值) 個停止位。
注意:數(shù)據(jù)發(fā)送期間不應(yīng)復(fù)位 TE 位。發(fā)送期間復(fù)位 TE 位會凍結(jié)波特率計數(shù)器,從而將損壞 TX 引 腳上的數(shù)據(jù)。當(dāng)前傳輸?shù)臄?shù)據(jù)將會丟失。
使能 TE 位后,將會發(fā)送空閑幀。

停止位的配置

步驟:
1.通過向%20USART_CR1%20寄存器中的%20UE%20位寫入%201%20使能%20USART。
2.%20對%20USART_CR1%20中的%20M%20位進行編程以定義字長。
3.%20對%20USART_CR2%20中的停止位數(shù)量進行編程。
4.%20如果將進行多緩沖區(qū)通信,請選擇%20USART_CR3%20中的%20DMA%20使能%20(DMAT)。按照多緩沖區(qū)%20通信中的解釋說明配置%20DMA%20寄存器。
5.%20使用%20USART_BRR%20寄存器選擇所需波特率。
6.%20將%20USART_CR1%20中的%20TE%20位置%201%20以便在首次發(fā)送時發(fā)送一個空閑幀。
7.%20在%20USART_DR%20寄存器中寫入要發(fā)送的數(shù)據(jù)(該操作將清零%20TXE%20位)。為每個要在單緩%20沖區(qū)模式下發(fā)送的數(shù)據(jù)重復(fù)這一步驟。
8.%20向%20USART_DR%20寄存器寫入最后一個數(shù)據(jù)后,等待至%20TC=1。這表明最后一個幀的傳送已%20完成。禁止%20USART%20或進入暫停模式時需要此步驟,以避免損壞最后一次發(fā)送。

單字節(jié)通信
始終通過向數(shù)據(jù)寄存器寫入數(shù)據(jù)來將%20TXE%20位清零。
TXE%20位由硬件置%201,它表示:
●%20數(shù)據(jù)已從%20TDR%20移到移位寄存器中且數(shù)據(jù)發(fā)送已開始。
●%20TDR%20寄存器為空。
●%20USART_DR%20寄存器中可寫入下一個數(shù)據(jù),而不會覆蓋前一個數(shù)據(jù)。
TXEIE%20位置%201%20時該標(biāo)志位會生成中斷。
發(fā)送時,要傳入%20USART_DR%20寄存器的寫指令中存有%20TDR%20寄存器中的數(shù)據(jù),該數(shù)據(jù)將在當(dāng)%20前發(fā)送結(jié)束時復(fù)制到移位寄存器中。
未發(fā)送時,要傳入%20USART_DR%20寄存器的寫指令直接將數(shù)據(jù)置于移位寄存器中,數(shù)據(jù)發(fā)送開%20始時,TXE%20位立即置%201。
如果幀已發(fā)送(停止位后)且%20TXE%20位置%201,TC%20位將變?yōu)楦唠娖?。如?20USART_CR1%20寄存器%20中的%20TCIE%20位置%201,將生成中斷。
向%20USART_DR%20寄存器中寫入最后一個數(shù)據(jù)后,必須等待至%20TC=1,之后才可禁止%20USART%20或使微控制器進入低功率模式。
TC%20位通過以下軟件序列清零:
1.從%20USART_SR%20寄存器讀取數(shù)據(jù)
2.%20向%20USART_DR%20寄存器寫入數(shù)據(jù)
注意:還可通過向%20TC%20位寫入“0”將其清零。建議僅在多緩沖區(qū)通信時使用此清零序列。

中斷字符
將 SBK 位置 1 將發(fā)送一個中斷字符。中斷幀的長度取決于 M 位。(見上圖USART字符說明)
如果 SBK 位置“1”,當(dāng)前字符發(fā)送完成后,將在 TX 線路上發(fā)送一個中斷字符。中斷字符 發(fā)送完成時(發(fā)送中斷字符的停止位期間),該位由硬件復(fù)位。USART 在上一個中斷幀的 末尾插入一個邏輯“1”位,以確保識別下個幀的起始位。
注意:如果軟件在中斷發(fā)送開始前對 SBK 位進行了復(fù)位,將不會發(fā)送中斷字符。對于兩個連續(xù)的中 斷,應(yīng)在上一個中斷的停止位發(fā)送完成后將 SBK 位置 1。

空閑字符
將 TE 位置 1 會驅(qū)動 USART 在第一個數(shù)據(jù)幀之前發(fā)送一個空閑幀。(見上圖USART字符說明)

字符接收(位數(shù)取決于M位)
起始位檢測
無論設(shè)置為16 倍或 8 倍過采樣時,起始位檢測序列相同都以16倍過采樣檢測。
在 USART 中,識別出特定序列的采樣時會檢測起始位。該序列為:1 1 1 0 X 0 X 0 X 0 0 0 0。

注意:如果序列不完整,起始位檢測將中止,接收器將返回空閑狀態(tài)(無標(biāo)志位置 1)等待下降沿。
如果 3 個采樣位均為 0(針對第 3 位、第 5 位和第 7 位進行首次采樣時檢測到這 3 位均為 0; 針對第 8 位、第 9 位和第 10 位進行第二次采樣時檢測到這 3 位均為 0),可確認(rèn)起始位 (RXNE 標(biāo)志位置 1,RXNEIE=1 時生成中斷)。
如果兩次采樣時(對第 3 位、第 5 位和第 7 位進行采樣以及對第 8位、第 9 位和第 10 位進 行采樣),3 個采樣位中至少有 2 個為 0,則可驗證起始位(RXNE 標(biāo)志位置 1,RXNEIE=1 時生成中斷)但 NE 噪聲標(biāo)志位置 1。如果不滿足此條件,則啟動檢測中止,接收器返回空 閑狀態(tài)(無標(biāo)志位置 1)。
如果其中一次采樣時(對第 3 位、第 5 位和第 7 位進行采樣或?qū)Φ?8 位、第 9 位和第 10 位 進行采樣),3 個采樣位中有 2 個為 0,則可驗證起始位但 NE 噪聲標(biāo)志位置 1。

字符接收
USART 接收期間,首先通過 RX 引腳移入數(shù)據(jù)的最低有效位。該模式下,USART_DR 寄存 器的緩沖區(qū) (RDR) 位于內(nèi)部總線和接收移位寄存器之間。
步驟:
1.通過向 USART_CR1 寄存器中的 UE 位寫入 1 使能 USART。
2. 對 USART_CR1 中的 M 位進行編程以定義字長。
3. 對 USART_CR2 中的停止位數(shù)量進行編程。
4. 如果將進行多緩沖區(qū)通信,請選擇 USART_CR3 中的 DMA 使能 (DMAR)。按照多緩沖 區(qū)通信中的解釋說明配置 DMA 寄存器。步驟 3
5. 使用波特率寄存器 USART_BRR 選擇所需波特率
6. 將 RE 位 USART_CR1 置 1。這一操作將使能接收器開始搜索起始位。
接收到字符時
● RXNE 位置 1。這表明移位寄存器的內(nèi)容已傳送到 RDR。也就是說,已接收到并可讀取數(shù)據(jù)(以及其相應(yīng)的錯誤標(biāo)志)。
● 如果 RXNEIE 位置 1,則會生成中斷。
● 如果接收期間已檢測到幀錯誤、噪聲錯誤或上溢錯誤,錯誤標(biāo)志位可置 1。
● 在多緩沖區(qū)模式下,每接收到一個字節(jié)后 RXNE 均置 1,然后通過 DMA 對數(shù)據(jù)寄存器執(zhí)行讀操作清零。
● 在單緩沖區(qū)模式下,通過軟件對 USART_DR 寄存器執(zhí)行讀操作將 RXNE 位清零。RXNE標(biāo)志也可以通過向該位寫入零來清零。RXNE 位必須在結(jié)束接收下一個字符前清零,以避免發(fā)生上溢錯誤。
注意:接收數(shù)據(jù)時,不應(yīng)將 RE 位復(fù)位。如果接收期間禁止了 RE 位,則會中止接收當(dāng)前字節(jié)。

中斷字符
接收到中斷字符時,USART 將會按照幀錯誤對其進行處理。

空閑字符
檢測到空閑幀時,處理步驟與接收到數(shù)據(jù)的情況相同;如果 IDLEIE 位為 1,則會產(chǎn)生中斷。

上溢錯誤
如果在 RXNE 未復(fù)位時接收到字符,則會發(fā)生上溢錯誤。RXNE 位清零前,數(shù)據(jù)無法從移位 寄存器傳送到 RDR 寄存器。
每接收到一個字節(jié)后,RXNE 標(biāo)志位都將置 1。當(dāng) RXNE 標(biāo)志位是 1 時,如果在接收到下一 個數(shù)據(jù)或尚未處理上一個 DMA 請求時,則會發(fā)生上溢錯誤。發(fā)生上溢錯誤時: ● ORE 位置 1。
● RDR 中的內(nèi)容不會丟失。對 USART_DR 執(zhí)行讀操作時可使用先前的數(shù)據(jù)。
● 移位寄存器將被覆蓋。之后,上溢期間接收到的任何數(shù)據(jù)都將丟失。
● 如果 RXNEIE 位置 1 或 EIE 與 DMAR 位均為 1,則會生成中斷。
● 通過先后對 USART_SR 寄存器和 USART_DR 寄存器執(zhí)行讀操作將 ORE 位清除。
注意:ORE 位置 1 時表示至少 1 個數(shù)據(jù)丟失。存在兩種可能:
● 如果 RXNE=1,則最后一個有效數(shù)據(jù)存儲于接收寄存器 RDR 中并且可進行讀?。?br/>● 如果 RXNE=0,則表示最后一個有效數(shù)據(jù)已被讀取,因此 RDR 中沒有要讀取的數(shù)據(jù)。接收到新(丟失)數(shù)據(jù)的同時已讀取 RDR中的最后一個有效數(shù)據(jù)時,會發(fā)生該情況。讀取序列期間(在 USART_SR 寄存器讀訪問與 USART_DR 讀訪問之間)接收到新數(shù)據(jù)時也會發(fā)生該情況。

選擇合適的過采樣方法
接收器采用不同的用戶可配置過采樣技術(shù)(除了同步模式下),可以從噪聲中提取有效數(shù)據(jù)。
可通過編程 USART_CR1 寄存器中的 OVER8 位來選擇采樣方法,且采樣時鐘可以是波特率 時鐘的 16 倍或 8 倍。
根據(jù)應(yīng)用:
● 選擇 8 倍過采樣 (OVER8=1) 以獲得更高的速度(高達 fPCLK/8)。這種情況下接收器對時鐘偏差的最大容差將會降低。
● 選擇 16 倍過采樣 (OVER8=0) 以增加接收器對時鐘偏差的容差。這種情況下,最大速度限制為最高 fPCLK/16可通過編程 USART_CR3 寄存器中的 ONEBIT 位選擇用于評估邏輯電平的方法。有兩種選擇:
● 在已接收位的中心進行三次采樣,從而進行多數(shù)表決。這種情況下,如果用于多數(shù)表決的 3 次采樣結(jié)果不相等,NF 位置 1。
● 在已接收位的中心進行單次采樣
根據(jù)應(yīng)用:
— 在噪聲環(huán)境下工作時,請選擇三次采樣的多數(shù)表決法 (ONEBIT=0);在檢測到噪聲時請拒絕數(shù)據(jù),因為這表示采樣過程中產(chǎn)生了干擾。
— 線路無噪聲時請選擇單次采樣法 (ONEBIT=1) 以增加接收器對時鐘偏差的容差。這種情況下NF 位始終不會置 1。
幀中檢測到噪聲時:
● 在 RXNE 位的上升沿時 NF 位置 1。
● 無效數(shù)據(jù)從移位寄存器傳送到 USART_DR 寄存器。
● 單字節(jié)通信時無中斷產(chǎn)生。然而,在 RXNE 位產(chǎn)生中斷時,該位出現(xiàn)上升沿。多緩沖區(qū)通信時,USART_CR3 寄存器中的 EIE 位置 1 時將發(fā)出中斷。
通過先后對 USART_SR 寄存器和 USART_DR 寄存器執(zhí)行讀操作將 NF 位清零。
注意:智能卡、IrDA 和 LIN 模式下不可采用 8 倍過采樣。在這些模式下,OVER8 位由硬件強制 清零。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

基于ARM? Cortex?-M4的STM32F4 MCU系列采用了意法半導(dǎo)體的NVM工藝和ART Accelerator?,在高達180 MHz的工作頻率下通過閃存執(zhí)行時其處理性能達到225 DMIPS/608 Cor...

關(guān)鍵字: stm32f4 ARM

stm32f4和f1都有哪些區(qū)別?除了需要的頭文件不一樣,管腳配置什么的有區(qū)別么?

關(guān)鍵字: stm32f4 f1 比較

STM32F407VET6引腳圖及中文資料

關(guān)鍵字: stm32f4 引腳圖

  UART   UART是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在嵌入式設(shè)計中,UART用于主機與輔助設(shè)備通信,如汽車音響與外接AP之間的通信,

關(guān)鍵字: uart usart

比較F1的片子對于F4的RTC來說有很大提升,F(xiàn)4的RTC提供了日歷時鐘和兩個可編程鬧鐘中斷,一個周期性可編程喚醒標(biāo)志。這樣很方便設(shè)置系統(tǒng)時間,并不會像F1的RTC那樣要自己計算年月日時分秒。F4的RTC是一個獨立的BC...

關(guān)鍵字: rtc stm32f4

void InitUart(void) { GPIO_InitTypeDef GPIO_InitStructure; #if 1// (USART_USED == USART1) RCC_AHBPeriph...

關(guān)鍵字: stm32f30x usart 串口 初始化順序

【實驗?zāi)康摹枯敵?路占空比不同的PWM信號是各個版本ST庫必備的例子。本實驗的主要目的不是表現(xiàn)ST芯片PWM功能的強大,而是要完成輸出的精確計算?!緦嶒瀮?nèi)容】輸出7路PWM信號,并用示波器測量輸出?!緦嶒炘怼?、時

關(guān)鍵字: pwm stm32f4 tim1 信號輸出

STM32F4的隨機數(shù)發(fā)生器RNG,以環(huán)境噪聲為種子,產(chǎn)生32位隨機數(shù)供主機使用?!局饕匦浴?、產(chǎn)生32位隨機數(shù) 2、兩次轉(zhuǎn)換時間間隔40PLL48CLK 3、隨機數(shù)熵檢測以發(fā)現(xiàn)不正常位,以產(chǎn)生穩(wěn)定序列 3、可被關(guān)閉以...

關(guān)鍵字: stm32f4 隨機數(shù)發(fā)生器

五、ATMEGA16的USART與PC機串行通信五—(02)、PC機發(fā)送字符給單片機,然后用液晶顯示發(fā)送的字符~~~這章節(jié)也是相對挺簡單的~~直接上圖片吧~~基本上就這么點吧~~然后就是程序了,這里我只是粘貼一下重要的程...

關(guān)鍵字: atmega16 avr單片機 usart 串行通信

書接上文,開始折騰ADC的DMA傳輸。因為大家都在說DMA,就連ST的例子里邊也是使用DMA的。 ADC采集到的數(shù)據(jù)都存儲在一個固定的寄存器中。當(dāng)常規(guī)采樣方式采樣多個通道時候,使用DMA可以較好地避免將采集到的數(shù)據(jù)...

關(guān)鍵字: adc dma stm32f4 數(shù)據(jù)傳輸 采集數(shù)據(jù)
關(guān)閉