CC2530學習路線-基礎實驗-串口通信發送字符串(4 未完待續)



1. 前期預備知識

1.1 串口通信電路圖

image_1bqjjhr9leo112efe02df51fp.png-25kB
從上圖可見,CC2530芯片經過P0端口的P0.1和P0.2引腳進行串口通信。這個實驗當中對於端口的操做也主要就是P0端口。blog

1.2 實驗相關寄存器

寄存器名稱 做用 寄存器描述
U0CSR (0x86) USART 0控制和狀態 bit7:USART模式選擇 0:SPI模式;1:UART模式
bit6:UART接收器使能 0:禁用接收器;1:接收器使能
bit5:SP主或從模式選擇 0:SPI主模式;1:SPI從模式
bit4:UART幀錯誤狀態 0: 無幀錯誤檢測;1: 字節收到不正確中止位級別
bit3:UART奇偶錯誤狀態 0: 無奇偶錯誤檢測;1: 字節收到奇偶錯誤
bit2:接收字節狀態 0: 沒有收到字節;1: 準備好接收字節
bit1 :傳送字節狀態 0:字節沒有被傳送;1:寫到數據緩存寄存器的最後字節被傳送
bit0:USART傳送/接收主動狀態、在SPI從模式下該位等於從模式選擇 0: USART空閒;1: 在傳送或者接收模式USART忙碌;
U0GCR (0xC5) USART0 通用控制 Bit[7] CPOL SPI 的時鐘極性 0: 負時鐘極性 1: 正時鐘極性
Bit[6] CPHA SPI 時鐘相位 0: 當SCK 從CPOL 倒置到CPOL 時數據輸出到MOSI, 而且當SCK 從CPOL倒置到CPOL 時數據輸入抽樣到MISO。 1: 當SCK 從CPOL 倒置到CPOL 時數據輸出到MOSI,而且當SCK 從CPOL倒置到CPOL 時數據輸入抽樣到MISO
Bit[5] ORDER 傳送位順序 0: LSB 先傳送 1: MSB 先傳送
Bit[4:0] BAUD_E 波特率指數值。BAUD_E 和 BAUD_M 決定了UART 波特率和SPI 的主SCK 時鐘頻率
U0BAUD (0xC2) USART 0 波特率控制 BAUD_M[7:0] 波特率小數部分的值。BAUD_E和BAUD_M決定了UART的波特率和SPI的主SCK時鐘頻率
U0DBUF USART 0接收/發送數據緩存
UTX0IF(發送中斷標誌) IRCON2 Bit1 USART 0 TX中斷標誌0: 無中斷未決 1: 中斷未決
CLKCONCMD 時鐘控制命令 Bit[7] OSC32K 32 kHz 時鐘振盪器選擇0 : 32 kHz XOSC 1 : 32 kHz RCOSC
Bit[6] OSC 系統時鐘源選擇0 : 32 MHz XOSC1 : 16 MHz RCOSC
Bit[5:3] TICKSPD 定時器標記輸出設置 000 :32 MHz 001 :16 MHz 010 :8 MHz 011 :4 MHz 100 :2 MHz 101 :1 MHz 110 :500 kHz 111 :250 kHz
Bit[2:0] CLKSPD 時鐘速度 000 :32 MHz 001 :16 MHz 010 :8 MHz 011 :4 MHz 100 :2 MHz 101 :1 MHz 110 :500 kHz 111 :250 kHz
CLKCONSTA CLKCONSTA寄存器是一個只讀寄存器,用來得到當前時鐘狀態

1.2 經常使用波特率設置

由寄存器 UxBAUD.BAUD_M[7:0]和 UxGCR.BAUD_E[4:0]定義波特率。該波特率用於 UART 傳送,也用於 SPI 傳送的串行時鐘速率。波特率由下式給出:it

image_1bqjoapr21ig4dc31uu90tt50m.png-21.7kB

F 是系統時鐘頻率,等於 16 MHz RCOSC 或者 32 MHz XOSC。 32 MHz 系統時鐘經常使用的波特率設置:table

波特率(bps) UxBAUD.BAUD_M UxGCR.BAUD_E 偏差(%)
2400 59 6 0.14
4800 59 7 0.14
9600 59 8 0.14
14400 216 8 0.03
19200 59 9 0.14
28800 216 9 0.03
38400 59 10 0.14
57600 216 10 0.03
76800 59 11 0.14
115200 216 11 0.03
230400 216 12 0.03

本章未完待續..... 原來寫的文章已經丟失了,只能找到這一小部分,看何時有時間再補上。

相關文章
相關標籤/搜索