由淺入深,藍(lán)牙4.0/BLE協(xié)議棧開發(fā)攻略大全(3)
本系列教程將結(jié)合TI推出的CC254x SoC 系列,講解從環(huán)境的搭建到藍(lán)牙4.0協(xié)議棧的開發(fā)來深入學(xué)習(xí)藍(lán)牙4.0的開發(fā)過程。教程共分為六部分,本文為第三部分:
第三部分知識(shí)點(diǎn):
第十一節(jié) 串口通信
第十二節(jié) Flash的讀寫
第十三節(jié) BLE協(xié)議棧簡介
第十四節(jié) OSAL工作原理
第十五節(jié) BLE藍(lán)牙4.0協(xié)議棧啟動(dòng)分析
有關(guān)TI 的CC254x芯片介紹,可點(diǎn)擊下面鏈接查看:
主流藍(lán)牙BLE控制芯片詳解(1):TI CC2540
同系列資料推薦:
由淺入深,藍(lán)牙4.0/BLE協(xié)議棧開發(fā)攻略大全(1)
由淺入深,藍(lán)牙4.0/BLE協(xié)議棧開發(fā)攻略大全(2)
有關(guān)本文的工具下載,大家可以到以下這個(gè)地址:
朱兆祺ForARM
第十一節(jié) 串口通信
在軟件開發(fā)過程中調(diào)試是一個(gè)很關(guān)鍵的過程,而調(diào)試用的最多的手段就是打印Log,嵌入式平臺(tái)很少有顯示設(shè)備,所以我們需要將信息通過串口打印到PC端。
MT254xboard上已經(jīng)通過RS232芯片將UART0連接到DB9,我們只需要將DB9連接到電腦即可,UART0 對(duì)應(yīng)的外部設(shè)備 IO 引腳關(guān)系為:P0_2------RX,P0_3------TX。
我們需要將這兩個(gè)IO配置為復(fù)用功能,CC2540的USART可以配置為SPI模式或者異步UART模式,這里我們需要配置為異步UART模式。
首先配置IO為UART模式:
PERCFG &= ~0x01; // 配置UART為位置 1
P0SEL = 0x3c; // P0_2,P0_3,P0_4,P0_5用作串口功能
P2DIR &= ~0XC0; // P0 優(yōu)先作為UART0
配置UART0寄存器,將UART0配置為8N1模式,波特率為115200。
U0CSR |= 0x80; // UART 方式
U0GCR |= 11; // U0GCR與U0BAUD配合
U0BAUD |= 216; // 波特率設(shè)為115200
UTX0IF = 0; // 清除中斷標(biāo)志
U0CSR |= 0X40; // 允許接收
IEN0 |= 0x84; // 開總中斷,接收中斷
這里采用中斷方式來接收串口數(shù)據(jù),并在中斷中回調(diào)應(yīng)用層的接收處理函數(shù)。
#pragma vector = URX0_VECTOR
__interrupt void UART0_ISR(void)
{
uint8 ch;
URX0IF = 0; // 清中斷標(biāo)志
ch = U0DBUF;
if ( NULL != RecvCb ) // 調(diào)用回調(diào)函數(shù)
{
RecvCb(ch);
}
}
為了測(cè)試串口的通訊功能,這里我們通過串口接收命令的方式來控制LED的亮滅和蜂鳴器的響和停止,并且顯示當(dāng)前的狀態(tài)。根據(jù)串口輸出提示,發(fā)送對(duì)應(yīng)字符可以實(shí)現(xiàn)相應(yīng)功能,并且顯示狀態(tài)。