首页 > 其他 > 详细

BLE4.0 学历笔记1之串口体验

时间:2014-08-10 18:16:00      阅读:558      评论:0      收藏:0      [点我收藏+]

  PS:这篇文章记录笔者TI ble协议栈的学习串口的笔记。

  前些日子CC2540模块没到,就捣鼓CC2530。深深的感受到,ZigBee就是个坑啊。然后果断玩BLE了。BLE,TI的栈给的文档,project这回看起来好点,然后找了其他一些资料。这里介绍《蓝牙4.0BLE开发完全手册-物联网开发技术实战》。看起来还行吧。不过我照着他的串口例子做,没看到效果(可能是协议栈版本问题)。于是,一怒之下,自己啃。

  最后再说一下,CC2530和CC2540除了RF不同外,51内核是一样的。因为栈中使用的HAL是一样的。

  说下自己的装备。如下图。手焊跳线o(∩_∩)o。主要可以用的IO有串口0,定时器1的通道0~3,定时器的IO映射到了位置2。和两个按键。bubuko.com,布布扣

  先来看看HAL都给了啥。我个人认为key、led、lcd就是多余的。这个硬件相关性实在是太强了。所以先从串口开始看起,我想各位看官的串口也都在位置1吧。

bubuko.com,布布扣

HAL里面默认串口使用的DMA。这个就不管它了。我建议先简单的看下APP Group下面的几个c文件。和OSAL.C中的osal_init_system和osal_run_system两个函数,其它最好也浏览一下。在开始写我们自己的串口函数前先看看项目的配置情况。请注意下,函数中用很多预编译,看的时候仔细点。

bubuko.com,布布扣

左上角,选择CC2540,关掉POWER_SAVING,在defined symbols中的POWER_SAVING前面加个x就可以了。关于POWER_SAVING,在函数osal_run_system中可以看到,这里我们x掉,不然编译会出现一个警告,说什么串口和key的中断被重复的啥啥啥的。至于LCD,因为我的板是没用LCD的干脆也x了。

  现在开始来看看怎么来串口打印出信息来。找到SimpleBLEPeripheral.c中的SimpleBLEPeripheral_Init函数,添加如下代码,注意{}中才是我添加的。另外要添加hal_uart.h这个头文件。

bubuko.com,布布扣
 1 void SimpleBLEPeripheral_Init( uint8 task_id )
 2 {
 3   simpleBLEPeripheral_TaskID = task_id;
 4 
 5     {    //add
 6         halUARTCfg_t halUARTCfg;
 7         halUARTCfg.configured            =    TRUE;
 8         halUARTCfg.baudRate                = HAL_UART_BR_115200;
 9         halUARTCfg.flowControl        =    HAL_UART_FLOW_OFF;
10         
11         HalUARTOpen(HAL_UART_PORT_0, &halUARTCfg);
12         HalUARTWrite(HAL_UART_PORT_0, "Hello CC2540!\n", 14);
13     }
添加串口

来看看串口配置这个结构体。注意到,这个结构体是没有关于配置停止位,校验位的。也就是全是默认。其他没用到的先不理会是用来干嘛的。

bubuko.com,布布扣
 1 typedef struct
 2 {
 3   bool                configured;
 4   uint8               baudRate;
 5   bool                flowControl;
 6   uint16              flowControlThreshold;
 7   uint8               idleTimeout;
 8   halUARTBufControl_t rx;
 9   halUARTBufControl_t tx;
10   bool                intEnable;
11   uint32              rxChRvdTime;
12   halUARTCBack_t      callBackFunc;    //回调函数
13 }halUARTCfg_t;
halUARTCfg_t

顺便吐槽一下,TI给的HAL api文档里面关于串口的宏定义有错,所以还是看源码靠谱点。

到这里,编译烧录,应该就可以看到串口出来的信息了。附图,注意一下右边的配置情况。

bubuko.com,布布扣


华丽的分割线


 

BLE4.0 学历笔记1之串口体验,布布扣,bubuko.com

BLE4.0 学历笔记1之串口体验

原文:http://www.cnblogs.com/xiemm/p/3902942.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!