目錄
- 1. 前期預備知識
- 1.1 序列槽通訊電路圖
- 1.2 實驗相關寄存器
- 1.2 常用波特率設定

從上圖可見,CC2530晶片通過P0端口的P0.1和P0.2引腳進行序列槽通訊。這個實驗當中對于端口的操作也主要就是P0端口。
寄存器名稱 | 作用 | 寄存器描述 |
---|---|---|
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寄存器是一個隻讀寄存器,用來獲得目前時鐘狀态 |
由寄存器 UxBAUD.BAUD_M[7:0]和 UxGCR.BAUD_E[4:0]定義波特率。該波特率用于 UART 傳送,也用于 SPI 傳送的串行時鐘速率。波特率由下式給出:
F 是系統時鐘頻率,等于 16 MHz RCOSC 或者 32 MHz XOSC。 32 MHz 系統時鐘常用的波特率設定:
波特率(bps) | UxBAUD.BAUD_M | UxGCR.BAUD_E | 誤差(%) |
---|---|---|---|
2400 | 59 | 6 | 0.14 |
4800 | 7 | ||
9600 | 8 | ||
14400 | 216 | 0.03 | |
19200 | 9 | ||
28800 | |||
38400 | 10 | ||
57600 | |||
76800 | 11 | ||
115200 | |||
230400 | 12 |