1 7 7 S5PV210序列通訊程式設計實戰1

2021-08-19 02:55:53 字數 2362 閱讀 4673

1.7.7.1、整個程式流程分析

(1)整個串列埠通訊相關程式包含2部分:uart_init負責初始化串列埠,uart_putc負責傳送乙個位元組

1.7.7.2、串列埠控制器初始化關鍵步驟

(1)初始化串列埠的tx和rx引腳所對應的gpio(查原理圖可知rx和rx分別對應gpa0_1和gpa0_0)

(2)gpa0con(0xe0200000),bit[3:0] = 0b0010bit[7:4] = 0b0010

(3)初始化這幾個關鍵暫存器ucon0 ulcon0 umcon0 ufcon0 ubrdiv0 udivslot0

1.7.7.3、主要的幾個暫存器

(1)ulcon0 = 0x3// 0校驗位、8資料位、1停止位

(2)ucon = 0x5// 傳送和接收都是polling mode

(3)umcon0 = 0x0// 禁止modem、afc

(4)ufcon0 = 0x0// 禁止fifo模式

(5)ubrdiv0和udivslot0和波特率有關,要根據公式去算的

1.7.7.4、在c原始檔中定義訪問暫存器的巨集

定義好了訪問暫存器的巨集之後,將來寫**時直接使用即可。

《朱老師物聯網大講堂》學習筆記

**是在上次的基礎上增加

新增了main.c和uart.c

注意修改start.s和makefile檔案,

在start.s中呼叫main函式,main函式中呼叫uart.c中的串列埠初始化和輸出函式,

這節課還是看看暫存器為主,只是引子,看乙個就可以,

串列埠初始化的關鍵步驟:

1.初始化tx和rx引腳所對應的gpio,它們分別對應gpa0_1和gpa0_0,

3.接下來是幾個關鍵性的暫存器

ucon0 ulcon0 umcon0 ufcon0 ubrdiv0 udivsloto

ulconn

31~7 保留

6紅外相關

5~3奇偶校驗,暫時不用

2使用1bit來設定

1~0  資料位長度

保留20

沒用到dma,隨便設

19~17

保留16

沒用到dma,隨便設

15~11

保留10

選用0,也就是pclk

9中斷,暫時不用

8中斷,暫時不用

7fifo暫時沒用

6中斷,暫時沒用

5loop_back,回環,也就是用來測試自己,可以不用

4不知道有什麼用

3~2設定01,使用輪詢

1~001,設定輪詢

全都設定為0

fifo相關的,可以不用

ubrdivn和udivslotn和波特率有關,後面根據公式去算。

這些暫存器都熟悉了以後,我們要進行相關巨集的定義

#defineutrstat00xe2900010

#defineutxh0 0xe2900020

#defineurxh0 0xe2900024

#definerutrstat0(*(volatile unsigned int *)utrstat0)

#definerutxh0(*(volatile unsigned int *)utxh0)

#definerurxh0(*(volatile unsigned int *)urxh0)

S5PV210序列通訊程式設計實戰 1

1 整個程式流程分析 程式是第五章icache專案複製過來的有 clock.s led.s start.s 新增bl main呼叫 makefile 依懶裡要新增uart.o和main.o mkv210 image.c 多新增乙個,uart.c再新增乙個main.c呼叫uart.c 1 整個串列埠通...

S5PV210 裸機中斷

這裡我以外部中斷為例畫出了中斷響應的過程。當外部中斷得到響應,會由硬體自動轉到異常向量表,執行對應的異常處理程式。在這裡指的就是irq的處理程式。在異常處理程式irq handle中將會執行現場的保護與恢復,以及最重要的中斷處理函式 注意,這裡就來到了中斷處理部分,而不是異常處理了,相當於是乙個兩級...

S5PV210控制蜂鳴器

s5pv210帶有乙個蜂鳴器,十分吵鬧,本章將學習如何控制蜂鳴器。相關引腳 蜂鳴器的操作十分簡單,原理跟操作led一樣,通過控制gpdo o這個引腳就可以達到控制蜂鳴器的目的。1.start.s start.s做了下面3件事 第一步 關看門狗 第二步 設定棧,以便呼叫c函式 第三步 呼叫main函式...