TI中文支持网
TI专业的中文技术问题搜集分享网站

【CC2541 评测】CC2541 迷你开发套件使用心得分享+使用IAR 评测和源码分析+by 北方.

1 使用simple Link的库,同时提供了丰富的源码。只是只提供了IAR的代码,所以需要先安装和使用IAR for 8051.

    IAR的产品相对和KEIl相比更新周期比较长,因此遇到的兼容问题少一些,不过也有一个问题,就是厂家器件库的更新慢一些。keil用PackInstaller。不过因为CC2541是一个比较生命周期长的产品,所以用老一些版本的IAR同样可以。就开发的角度,使用正版会获得更多的支持,因此开发阶段还是要支持正版的。毕竟TI已经提供了免费的开发栈了,这个是花费更多时间,而且会有助于通过蓝牙认证的。如果,希望了解工程结构,那么用试用版也是完全可以的,30天的使用版就可以的。

导入工程项目空间

其中有很多对应的范例,选择keyfob demo,这里就列出了全部的代码。

2 源码分析

2.1 蓝牙基础库

根据蓝牙4.1的协议,固化了PROFILES,以及对应的HAL硬件层的定义。其中加速度传感器的定义如下:

在前面的评测中,加速度的service写入1则启动x轴的传感器数据读取,写入0则关闭,

2.2 开发板的资源访问

开发板使用的传感器硬件是BMA250,还有BUZZ,都在APP部分中应用,

如buzz的硬件定义是GPIO的定义

void buzzerInit(void)
{
#if defined ( CC2540_MINIDK )// Buzzer connected at P1_6// We will use Timer 3 Channel 0 at alternate location 2// Channel 0 will toggle on compare with 0 and counter will// count in up/down mode to T3CC0.PERCFG |= 0x20;// Timer 3 Alternate location 2P1DIR |= 0x40;// P1_6 = outputP1SEL |= 0x40;// Peripheral function on P1_6T3CTL &= ~0x10;// Stop timer 3 (if it was running)T3CTL |= 0x04;// Clear timer 3T3CTL &= ~0x08;// Disable Timer 3 overflow interruptsT3CTL |= 0x03;// Timer 3 mode = 3 - Up/DownT3CCTL0 &= ~0x40;// Disable channel 0 interruptsT3CCTL0 |= 0x04;// Ch0 mode = compareT3CCTL0 |= 0x10;// Ch0 output compare mode = toggle on compare
#endif
}

2.3 用户程序

主程序是启动了TI的实时操作系统,这样避免了常见的8051中的完全用loop轮询的访问方式,只要启动相应的任务就可以快速定义项目。

对应于蓝牙协议栈等,都可以隔离,直接访问API,自定义对应的UUID和services等。

int main(void)
{/* Initialize hardware */HAL_BOARD_INIT();// Initialize board I/OInitBoard( OB_COLD );/* Initialze the HAL driver */HalDriverInit();/* Initialize NV system */osal_snv_init();/* Initialize LL *//* Initialize the operating system */osal_init_system();/* Enable interrupts */HAL_ENABLE_INTERRUPTS();// Final board initializationInitBoard( OB_READY );#if defined ( POWER_SAVING )osal_pwrmgr_device( PWRMGR_BATTERY );#endif/* Start OSAL */osal_start_system(); // No Return from herereturn 0;
}

启动时钟后进入节能模式。

对应于线程的设定和主要的参数以及device Name等都是在keyfobdemo.c中定义,这个也是嵌入用户代码的位置。

对于理解蓝牙协议的运用方式,可以直接快速开发,进一步的了解可以仔细阅读提供的软件开发导则,里面有很多API和详细的参数说明。

3 在完成后,可以直接编译,就可以生成可执行文件HEX。

这次build中止,主要是因为在编译的过程中,代码超过了测试版的4k限制。使用30天测试版就可以顺利完成编译的过程。在output目录下生成hex文件

user4544030:

程序跑有OSAL系统?

user6155536:

谢谢楼主的分析,学习了

lospring:

谢谢分享,项目创建的流程很详细,希望楼主多多分享,最好有具体的项目成品

user5324490:

谢谢分享,代码解析给的挺详细的。

user5324490:

谢谢分享,代码解析给的挺详细的。期待更新

user6155536:

谢谢分享,项目创建流程很清晰

user5367733:

测试版原来还有4K限制,谢谢楼主分享!

user3883604:

楼主分享的流程很详细,期待更多代码测评!

赞(0)
未经允许不得转载:TI中文支持网 » 【CC2541 评测】CC2541 迷你开发套件使用心得分享+使用IAR 评测和源码分析+by 北方.
分享到: 更多 (0)