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