第四部分 提高篇-第4章 CC2530协议栈按键实验

实验设备
硬件:PC 机一台;ZB2530(底板、核心板、仿真器、USB 线) 一套
软件:win7 系统,IAR 8.20 集成开发环境

4.1 实验步骤

由于有了裸机实验的基础,大家早已知道怎么配置按键程序,只不过大家对协议栈不熟悉,不知道 TI 究竟将按键的相关代码放在哪里而已。在上一讲已经用LED通讯对协议栈工作流程进行了分析,的确,协议栈代码比较多。所以,接下来的讲解,只会教会大家在哪里修改,而不会像裸机实验那样详细的解释每一步是怎么来的了。首先看看电路图吧。

这里写图片描述

图4-1 LED电路图

这里写图片描述

图4-2 按键电路图

按键配置步骤如下:
*第一步:在 hal_key.c 中修改。
这里写图片描述

图4-3打开路径

1 配置io口
这里写图片描述
2 边缘触发方式
这里写图片描述
3中断一些相关标志位
这里写图片描述
第二步:修改 hal_board_cfg.h 文件。
这里写图片描述

图4-4打开路径

这里写图片描述
第三步:修改 OnBoard.C 文件。
在 ZMain目录树下,如图4-5。
这里写图片描述

图4-5打开路径

这里写图片描述
好啦,既然我们使能了按键中断,也就是通用 IO 中断,那么,在这里顺便告诉大家,IO 中断的服务函数在哪里。它就在 hal_key.c 里,具体代码如下所示。另外,像其他的中断,如:定时器中断的服务函数,就会在 hal_timer.c 里。
这里写图片描述
通过简单的几个步骤,我们就配置好了按键所需要的文件。 下面我们来看看协议栈是检测到按键按下时候是如何处理的,16 位必须只占 1 位,所以只能 16个任务。我们回到熟悉的 SampleApp.c 文件,找到按键时间处理 KEY_CHANGE 事件的函数:
这里写图片描述
进入 SampleApp_HandleKeys()函数,加入我们的按键处理函数。这里是SW_6,也即是我们刚定义好的开发板上的 S1。
这里写图片描述

4.2实验现象

打开工程程序,接着,选择 CoordinatorEB-Pro 编译后下载到一个 Zigbee 模块,然后,模块通过串口连接到电脑。打开串口调试助手,设置相关配置,当按下 BUT1,就可以看到如图的效果,另外 LED1 还会闪烁。

这里写图片描述

图4-6

本章参考代码

点击进入

猜你喜欢

转载自blog.csdn.net/u013162035/article/details/80964704
今日推荐