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

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

ID:39736416

大小:608.14 KB

页数:23页

时间:2019-07-10

由浅入深,蓝牙40BLE协议栈开发攻略大全(3)_第1页
由浅入深,蓝牙40BLE协议栈开发攻略大全(3)_第2页
由浅入深,蓝牙40BLE协议栈开发攻略大全(3)_第3页
由浅入深,蓝牙40BLE协议栈开发攻略大全(3)_第4页
由浅入深,蓝牙40BLE协议栈开发攻略大全(3)_第5页
资源描述:

《由浅入深,蓝牙40BLE协议栈开发攻略大全(3)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、本系列教程将结合TI推出的CC254xSoC系列,讲解从环境的搭建到蓝牙4.0协议栈的开发来深入学习蓝牙4.0的开发过程。教程共分为六部分,本文为第三部分:  第三部分知识点:  第十一节串口通信  第十二节Flash的读写  第十三节BLE协议栈简介  第十四节OSAL工作原理  第十五节BLE蓝牙4.0协议栈启动分析   有关TI的CC254x芯片介绍,可点击下面链接查看:  主流蓝牙BLE控制芯片详解(1):TICC2540    同系列资料推荐:  由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(1)  由浅入深,蓝牙4.0/BLE协议栈开发攻略大全(2)   有关本文的工具下

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模式

3、:  PERCFG&=~0x01;//配置UART为位置1  P0SEL=0x3c;//P0_2,P0_3,P0_4,P0_5用作串口功能  P2DIR&=~0XC0;//P0优先作为UART0  配置UART0寄存器,将UART0配置为8N1模式,波特率为115200。  U0CSR

4、=0x80;//UART方式  U0GCR

5、=11;//U0GCR与U0BAUD配合  U0BAUD

6、=216;//波特率设为115200  UTX0IF=0;//清除中断标志  U0CSR

7、=0X40;//允许接收  IEN0

8、=0x84;//开总中断,接收中断  这里采用中断方式来接收串口数据,并在

9、中断中回调应用层的接收处理函数。  #pragmavector=URX0_VECTOR  __interruptvoidUART0_ISR(void)  {  uint8ch;  URX0IF=0;//清中断标志  ch=U0DBUF;  if(NULL!=RecvCb)//调用回调函数  {  RecvCb(ch);  }  }  为了测试串口的通讯功能,这里我们通过串口接收命令的方式来控制LED的亮灭和蜂鸣器的响和停止,并且显示当前的状态。根据串口输出提示,发送对应字符可以实现相应功能,并且显示状态。    第十二节Flash的读写  嵌入式系统中需要存储数据,而片内的Flash资

10、源很匮乏,所以我们经常需要使用SpiFlash来存储数据,MT254xboard中板载了一个512Kbyte的Flash,下面我们来驱动此Flash。上一小节中我们用SPI的方式驱动了LCD12864,这节我们继续用SPI来驱动板载的Flash,详细的说明了如何驱动这片Flash,在此不做累述,我们复制LCD12864工程,重命名为SpiFlash,在此工程中添加GD25Q40的两个驱动文件。    下面我们来检测这个Flash,检测的方法为,全部写入0xAA,然后再读出,对比是否为0xAA,如果是,那Flash是没有问题的,否则Flash可能已经有坏块。具体

11、的代码见例程,这个过程所需要的时间取决于我们需要检测的区域大小,如果完全检测,则可能需要几分钟的时间。  intmain(void)  {  SysStartXOSC();  LCD12864_Init();//LCD初始化  GD25Q40_Init();//Flash初始化  LCD12864_DisStr(0,“FlashCheck.。。。”);  sprintf(LCDBuf,“FlashID:%04X”,GD25Q40_ReadID());//读取器件ID  LCD12864_DisStr(1,LCDBuf);  GD25Q40_EraseChip();//擦除整片Flash

12、大约需要10S  LCD12864_DisStr(2,“EraseChipComplete”);  uint32iCnt=0;  //全部写入0xAA  constuint8Write=0xAA;  for(iCnt=0;iCnt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。