
TI-CC2530
jklinux
一个linux下的渣渣老码农
展开
-
01 TI cc2530的IO口控制
计算机里归根到底就是使用二进制0/1, 在电路上就是用高低电平(3.3v, 0v)来表示。一个IO口就是相当于从CPU芯片里引出的一根导线, 用于连接输入输出设备,由代码来控制/获取它的电平。 也就是说我们可以通过代码控制一个IO口是高电平还是低电平(IO作输出功能)。 还是通过代码来判断IO口是处于高/低电平状态(IO作输入功能).CC2530里共分成三组IO口: P0, P1, P2原创 2017-07-15 10:22:53 · 4431 阅读 · 0 评论 -
02 TI CC2530的uart控制器
uart原理参考 uart接口: 发出数据时,就是根据波特率的位时间来改变tx脚的电平. 如二进制数据是’1’则用高电平表示, ‘0’则用低电平表示. 接收数据时,根据位时间来判断rx脚的电平, 如是高电平则表示’1’, 低电平表示’0’.作这样的工作比较麻烦,要求也比较高。所以一般情况下, CPU芯片里都会提供uar控制器,用于帮我们根据要传输的数据自动控制tx脚的电平和判断rx脚的原创 2017-07-16 09:02:46 · 1484 阅读 · 0 评论 -
03 TI cc2530外部中断的应用
在cc2530的中断控制器,共有18个中断源: 其中P0INT, P1INT, P2INT分别是P0, P1, P2组IO口的中断号. 外部中断其实就是指GPIO口的中断功能, 也就是当一个IO口的电平发生变化时自动产生一个硬件信号,自动暂停当前程序的执行,触发调用一个处理函数.一个IO口的电平状态有: 高电平, 低电平, 下降沿, 上升沿, 双边沿 CC2530外部中断线只能捕捉:下原创 2017-07-20 00:03:47 · 2583 阅读 · 0 评论 -
04 基于TI官方CC2530 BasicRF的简单应用
解包”CC2530 BasicRF(TI 原文件).rar”到C:盘. 1) 无线点灯: 双击打开"C:\CC2530 BasicRF\CC2530 BasicRF\ide\srf05_cc2530\iar\light_switch.eww" 打开后,可以看出整个工程由4个目录组成. application: 应用程序, 即这里的代码是基于调用其它目录里提供的功能实现的原创 2017-07-20 11:36:28 · 5348 阅读 · 0 评论 -
05 TI ZStack协议栈的分层及设备分类
协议栈里常见的英文缩写:SDK: software development kitBSP: board support package(板级支持包):硬件电路图,PCB. 相应的源码API: Application Programming Interface 编程应用接口CBC-MAC: Cipher Block Chaining Message Authentication CodeC原创 2017-07-24 11:24:51 · 3547 阅读 · 0 评论 -
06 ZStack的task工作流程分析
安装ZStack-CC2530-2.5.1a.exe默认安装到”C:\Texas Instruments\ZStack-CC2530-2.5.1a”目录下. Components目录里实现 hal层、stack网络协议栈、mac层的封装, 而且也实现了osal操作系统的功能等. 通常情况下我们就是调用里面实现好的功能函数就可以了.Documents目录里存放有各个分层的的功能函数的说原创 2017-07-24 15:15:58 · 1739 阅读 · 0 评论 -
07 在ZStack里创建自己的task
打开SampleApp工程后: 因在ZStack里有些资源只能供一个任务使用,所以先把原SampleApp任务的功能去掉(不是删除掉,而是让它不执行起来).在OSAL_SampleApp.c 里:const pTaskEventHandlerFn tasksArr[] = { ... // SampleApp_ProcessEvent 备注掉SampleApp任务的事件处理函数};v原创 2017-07-25 11:04:21 · 1048 阅读 · 0 评论 -
08 在ZStack里的led灯控制
在ZStack里已经在hal层里把led的功能封装起来了.在工程的HAL目录 include子目录 hal_led.h头文件里://下面的宏表示第几个led灯, 逻辑上的表示,与具体硬件并没有直接的关系#define HAL_LED_1 0x01#define HAL_LED_2 0x02#define HAL_LED_3 0x04原创 2017-07-25 13:37:45 · 3940 阅读 · 0 评论 -
09 在ZStack里的定时器应用
ZStack里的任务是基于事件来调度的, 里面的定时器其实就是在约定的时间到后,设置指定任务的事件,从而让定时的任务处理定时事件.定时器封装在工程目录OSAL里的OSAL_Timers.h头文件里: extern uint8 osal_start_timerEx( uint8 task_id, uint16 event_id, uint16 timeout_value ); //设置timeout原创 2017-07-25 21:40:06 · 2261 阅读 · 0 评论 -
10 在ZStack里的按键驱动
到目前我们可以通过设置任务的事件信息,从而让任务的事件处理函数触发。但除了事件外如还需要传递额外的数据(消息)给另一任务时,就需要用下面的函数功能:OSAL/OSAL.htypedef struct{ uint8 event; //记录消息的种类,如按键消息则为KEY_CHANGE uint8 status;} osal_event_hdr_t; //每种消息都包括此结构体作头部e原创 2017-07-26 21:56:49 · 1090 阅读 · 0 评论 -
11 在ZStack里实现uart数据输出功能
在ZStack里的uart功能封装在HAL/Include/hal_uart.h头文件里:#define HAL_UART_BR_9600 0x00#define HAL_UART_BR_19200 0x01#define HAL_UART_BR_38400 0x02#define HAL_UART_BR_57600 0x03#define HAL_UART_BR_115200 0原创 2017-07-27 20:55:56 · 1799 阅读 · 0 评论 -
12 在ZStack里实现uart数据接收功能
在上一篇已经实现uart数据输出功能了,但接收数据时尚未搞好的。 在MT任务里已实现当有uart数据需接收时,自动调用函数MT_UartProcessZToolData来处理数据的接收,接收数据后通过发出消息的方法把数据传递到用户任务里去。void MT_UartProcessZToolData ( uint8 port, uint8 event ) //{ uint8 ch;原创 2017-07-28 00:13:38 · 2521 阅读 · 2 评论 -
13 在ZStack里设置pan ID和信号输出功率
在zigbee网络里pan ID非常非常重要. 一个pan ID代表一个网络,在此网络里只能一个协调器,多个路由器和多个终端设备, 而且它们还需要使用同一通道来通信.在相同的户内环境里,如需要多个zigbee网络来通信的话,必须修改工程里的pan ID和通道的设置:-DDEFAULT_CHANLIST=0x00000800 //就是表示使用通道, 不同的通道表示不同的频段原创 2017-07-28 10:29:58 · 3854 阅读 · 2 评论 -
14 在ZStack里的网络广播传输
ZStack里的网络传输功能比较像系统上的udp socket编程. 它可以支持广播,组播,及点到点的单播传输方式。 网络传输的功能所用的主要数据类型及函数在工程的”profile/AF.h”里. typedef enum{ afAddrNotPresent = AddrNotPresent, //表示地址不存在 afAddr16Bit = Addr16B原创 2017-07-30 21:52:05 · 1057 阅读 · 1 评论