UART驅動構件的設計方法

2021-09-28 11:17:26 字數 1839 閱讀 5941

uartx控制暫存器1(設定uart的工作方式、執行模式、喚醒模式、空閒型別)

uartx控制暫存器2(uartx_c2)主要用於收/發及相關中斷控制設定。

在設計uart驅動構件時主要用到該暫存器的3個位。分別為d5位(接收中斷使能位rie)、d3位(發射器使能位te)和d2位(接收器使能位re)。

d5(rie):配合狀態暫存器rdrf。

rie=0,串列埠接收中斷禁用,使用查詢方式接收資料。

rie=1,rdrf=1,產生串列埠接收中斷請求。

d3(te):te=1,才可以使用串列埠uart傳送器,傳送傳送引腳作為串列埠uart系統的輸出。

te=0,禁用傳送器無法進行串列埠資料的傳送。

d2(re):re=1,接收器使能,串列埠使用rx引腳接收資料。

re=0,接收器禁用,無法通過串列埠接收資料。

uart0控制暫存器4(

uart0控制暫存器5(

以上兩個暫存器僅在uart0模組中有定義。

d7(傳送資料暫存器空標誌位tdre):在復位之後或者當乙個傳送資料從緩衝區轉移到傳送移位器之後,該位被置位。如果要清tdre位,應先進行讀操作,然後寫uart資料暫存器才可以完成清位。

當tdre=0時,傳送資料暫存器已滿;tdre=1,傳送資料暫存器為空。

d5(資料暫存器已滿標誌位rdrf):當接收緩衝區滿了以後,該位置位。清除rdrf,應先對該位進行讀操作,然後讀uart資料暫存器。

當rdrf=0時,接收資料暫存器為空;rdrf=1時,接收資料暫存器已滿,該位一般與控制暫存器的rie位搭配使用完成串列埠資料的讀取。

進行串列埠資料傳送時需要確定串列埠傳送的波特率。

kl25/26的串列埠模組中,波特率暫存器有高位與低位,一同控制波特率生成器的分頻因子。

只有當收發器都禁用的情況下,13位的波特率設定為([sbr12:sbr0])才可以被設定。

波特率設定位計算公式

當br為1~8191時,

uart0波特率=usrt0時鐘/((osr+1)*br)

uart1、uart2波特率=busckl/(16*br)

資料暫存器實際有兩個單獨的8位暫存器,讀操作則會返回唯讀接收資料暫存器中的內容,寫操作會寫到只寫傳送暫存器中。

uart驅動構件存放在工程目錄「05_driver」底層驅動構件資料夾中,方便複製使用。

對串列埠使用的引腳進行巨集定義,提高適應性。

由於單位元組的校驗較少使用,奇偶校驗不再作為構件的基本要素。

1.完成串列埠通訊的管理打通

2.基本關鍵函式的設計

嵌入式技術基礎與實踐(第4版)

構件組裝 模型驅動的構件組裝

第四章 模型驅動的構件組裝 本章提出一種普適性的構件組裝機制,建立起構件與連線件元模型,並對它們的性質進行了總結歸納,在此基礎上建立起構件與連線件元模型的實現。基於dsm的構件組裝,實現了從高層的構件組裝建模到程式 的完整對映。構件通常分為原子構件與組裝產生的復合構件,但本文使用dsm快速生成完整的...

自己動手寫的UART2驅動

昨天發現新唐的bsp中沒有提供uart2的定義 即其操作,只定義了uart0和uart1及其驅動操作。但是涉及的板子中又弄了3路串列埠,當然uart2在其中。第一反應就是查閱新唐的資料,nuc1 的前期設計文件中,有些說可以支援uart2,但是又有很多定義的地方都reserve了,就是本該uart2...

s3c6410的UART裝置驅動 1

這段話摘於 裝置驅動開發詳解 在使用串列埠核心層這個通用串列埠tty驅動層的介面後,乙個串列埠驅動要完成的主要工作 1 定義uart driver uart ops uart port等結構體的例項並在適當的地方根據具體硬體和驅動的情況初始化它們,當然具體裝置的驅動可以將這些結構體在新定義的 uar...