arm 裸機程式設計 串列埠篇

2021-10-05 03:59:56 字數 770 閱讀 1602

uart:通用非同步收發器,是一種全雙工序列非同步通訊

波特率與bps

實際上波特率並不等於bps。

波特率:一秒鐘傳輸碼元的個數

bps:一秒鐘傳送的位元位位數

而碼元是承載資訊量的基本訊號單位,乙個二進位制碼元佔乙個位元位

所以僅傳輸二進位制碼元時,bps等於波特率

同步和非同步方式:

非同步:非同步通訊中的接收方並不知道資料什麼時候會到達,收發雙方可以有各自自己的時鐘。傳送方傳送的時間間隔可以不均,接收方是在資料的起始位和停止位的幫助下實現資訊同步的。

同步:同步通訊中雙方使用頻率一致的時鐘 ,它的分組相比非同步則大得多,稱為乙個資料幀,通過獨特的bit串作為啟停標識。傳送方要以固定的節奏去傳送資料,而接收方要時刻做好接收資料的準備,識別到前導碼後馬上要開始接收資料了。

配置串列埠大的步驟(使用輪詢方式):

波特率起始位、停止位、奇偶校驗位、資料位

收發模式

需要分別知道讀取和傳送串列埠資料的暫存器

需要知道什麼時候收資料,什麼時候發資料,即狀態暫存器。

波特率計算方法:

ubrdivn用來儲存整數字。

計算方式:( sclk_uart /

(bps *16)

)-1ufracvaln用來儲存小數字

計算方式:( sclk_uart %

(bps *16)

)*16

ARM裸機開發(四)串列埠程式設計

以下裸機程式基於gt2440,編譯器為arm linux gcc 4.4.3。程式結構 程式只有乙個uart.s檔案。程式流程 首先上電復位,進入復位異常處理,關閉看門狗,初始化系統時鐘 fclk 400mhz,hclk 100mhz,pclk 50mhz 初始化串列埠 無檢驗位,1位停止位,8位資...

ARM裸機程式設計系列 buzzer

蜂鳴器控制很簡單只需要控制引腳輸出即可。通過原理圖檢視找到對應的gpio 下面是 start.s global start start 關閉看門狗 ldr r0,0xe2700000 mov r1,0 str r1,r0 設定棧,以便呼叫c函式 ldr sp,0x31000000 呼叫main bl...

X210ARM裸機串列埠通訊詳解

1 整個程式流程分析 1 整個串列埠通訊相關程式包含2部分 uart init負責初始化串列埠,uart putc負責傳送乙個位元組 2 串列埠控制器初始化關鍵步驟 1 初始化串列埠的tx和rx引腳所對應的gpio 查原理圖可知rx和rx分別對應gpa0 1和gpa0 0 2 gpa0con 0xe...