乙個位元組產生乙個中斷。
(1)資料傳送過程
當使能了傳送使能位te後,資料要傳送出去,首先要將資料寫進usart_dr暫存器(和51微控制器sbuf
一樣,usart_dr暫存器實際包含了兩個暫存器,給傳送用的tdr和給接收用的rdr,在
usart_dr暫存器下還有乙個傳送/接收移位暫存器,資料的傳送接收最後都要通過移位暫存器
),如果此時usart正在傳送資料,寫入的資料先儲存在tdr暫存器中,傳輸完成後再把該資料複製進移位暫存器。如果此時usart沒有在傳送資料,對usart_dr暫存器的寫操作,資料直接存放進移位暫存器。無論哪種方式,資料存進移位暫存器後,便開始傳送,txe被置位,當一幀資料傳送完(停止位傳送後),tc位被置位,並且如果usart_cr1的tcie位被置位,將產生中斷。資料的傳送是從低位傳送起。
(2)資料的接收過程
當usart_cr1的re位被使能後,且接收器的rx端由高電平被拉為低電平,那麼接收開始。資料的最低有效位首先從rx腳移進移位暫存器。 ■
當rxne(接收資料暫存器非空標誌位)被置位,表明移位暫存器的內容被轉移到rdr,此時資料已經被接收並且可以被讀出,usart_dr和相關的錯誤標誌位。 ■
如果reneie位被置位,將產生中斷,如果在接收期間,檢測到除錯誤、噪音、溢位錯誤,錯誤標誌位將被置位。 ■
在多緩衝器通訊時, rxne在每個位元組接收後被置起,並由dma對資料暫存器的讀操作而
清零。
■在單緩衝器模式裡,由軟體讀usart_dr暫存器完成對rxne位清除。 rxne標誌也可以通
過對它寫0來清除。 rxne位必須在下一字元接收結束前被清零,以避免溢位錯誤。
UIApplication深入學習
新建乙個任意型別的ios應用工程,加入我們在class prefix輸入是tc,我們可以看到工程中生成乙個類 在main函式中,autoreleasepool 函式中 說明 當應用程式將要入非活動狀態執行,在此期間,應用程式不接收訊息或事件。比如來 了。說明 當應用程式入活動狀態執行,這個剛好跟上面...
深入學習CSS
什麼是css?在之前的這篇文章中已經介紹了初步的介紹,詳細請看 div加css進一步講解了css中的內容,先總結如下圖 其實在實際開發中,我們通常採用是外部樣式的匯入,這樣做的好處是對於很對有同樣設計樣式的頁面可以實現樣式的共享,這樣我們不僅僅可以節省了大量的時間,並且也方便我們可以靈活的呼叫的樣式...
block深入學習
block的宣告和使用看上一節就行了。本章主要講block內部的實現過程及原理。block的定義和函式指標非常相似 對比一下 block定義 void someblock 函式指標定義 void functionpionter void functionname 當然區別還是有的,block的返回型...