该系列教程将结合TI发行的CC254x SoC系列,以解释从环境构建到对蓝牙4.0开发过程的深入研究,蓝牙4.0协议栈的开发。本教程分为六个部分。
本文是第三部分:knowledge知识的第三部分:第11章串行通信第12节闪存读写第13章BLE协议栈简介第14章OSAL工作原理10五节BLE蓝牙4.0协议栈启动分析/ BLE协议栈开发策略书(一)从浅到深,蓝牙4.0 / BLE协议栈开发策略书(二)要下载本文中的工具,您可以转到以下地址:Zhu Zhaoqi ForARM第11节串行通信调试是软件开发过程中非常关键的过程,最常用的调试方法是打印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优先用作UART0 preferred配置UART0寄存器,将UART0配置为8N1模式,波特率是115200。U0CSR | = 0x80; // UART模式U0GCR | = 11; // U0GCR和U0BAUD与U0BAUD | = 216; //波特率设置为115200 UTX0IF = 0; //清除中断标志U0CSR | = 0X40; //允许接收IEN0 | = 0x84; //打开总中断,此处的接收中断使用中断模式接收串口数据,并在中断中回调应用层的接收处理功能。
#pragma vector = URX0_VECTOR __interrupt void UART0_ISR(void){uint8 ch; URX0IF = 0; //清除中断标志ch = U0DBUF; if(callback!= Recvch)测试。串行口的通讯功能,这里我们通过串行口接收命令来控制LED的开和关以及蜂鸣器的声音和停止,并显示当前状态。
根据串口的输出提示,发送相应的字符即可实现相应的功能并显示状态。