由浅入深,蓝牙4.0BLE协议栈开发攻略大全(3)

由浅入深,蓝牙4.0BLE协议栈开发攻略大全(3),第1张

  

  本系列教程将结合TI推出的CC254x SoC 系列,讲解从环境的搭建到蓝牙4.0协议栈的开发来深入学习蓝牙4.0的开发过程。教程共分为六部分,本文为第三部分:

  第三部分知识点:

  第十一节 串口通信

  第十二节 Flash的读写

  第十三节 BLE协议栈简介

  第十四节 OSAL工作原理

  第十五节 BLE蓝牙4.0协议栈启动分析
 

  有关TI 的CC254x芯片介绍,可点击下面链接查看:

  主流蓝牙BLE控制芯片详解(1):TI CC2540
 

 

  同系列资料推荐:

  由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(1)

  由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(2)
 

  有关本文的工具下载,大家可以到以下这个地址:

  朱兆祺ForARM

 

  第十一节 串口通信

  在软件开发过程中调试是一个很关键的过程,而调试用的最多的手段就是打印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

  配置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 ( NULL != RecvCb ) // 调用回调函数

  {

  RecvCb(ch);

  }

  }

  为了测试串口的通讯功能,这里我们通过串口接收命令的方式来控制LED的亮灭和蜂鸣器的响和停止,并且显示当前的状态。根据串口输出提示,发送对应字符可以实现相应功能,并且显示状态。

  由浅入深,蓝牙4.0BLE协议栈开发攻略大全(3),蓝牙4.0/BLE协议栈开发攻略大全,第2张

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2686698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-15
下一篇 2022-08-15

发表评论

登录后才能评论

评论列表(0条)

保存