打印
[Zigbee]

CC2530协议栈按键实验

[复制链接]
784|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gwsan|  楼主 | 2019-8-5 13:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
实验设备
硬件:PC 机一台;ZB2530(底板、核心板、仿真器、USB 线) 一套
软件:win7 系统,IAR 8.20 集成开发环境

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



图4-1 LED电路图


图4-2 按键电路图


使用特权

评论回复

相关帖子

沙发
gwsan|  楼主 | 2019-8-5 13:45 | 只看该作者

按键配置步骤如下:

*第一步:在 hal_key.c 中修改

图4-3打开路径

使用特权

评论回复
板凳
gwsan|  楼主 | 2019-8-5 13:45 | 只看该作者
1 配置io口

2 边缘触发方式

3中断一些相关标志位


使用特权

评论回复
地板
gwsan|  楼主 | 2019-8-5 13:46 | 只看该作者

第二步:修改 hal_board_cfg.h 文件。

图4-4打开路径

使用特权

评论回复
5
gwsan|  楼主 | 2019-8-5 13:46 | 只看该作者

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

图4-5打开路径

使用特权

评论回复
6
gwsan|  楼主 | 2019-8-5 13:50 | 只看该作者
好啦,既然我们使能了按键中断,也就是通用 IO 中断,那么,在这里顺便告诉大家,IO 中断的服务函数在哪里。它就在 hal_key.c 里,具体代码如下所示。另外,像其他的中断,如:定时器中断的服务函数,就会在 hal_timer.c 里。

使用特权

评论回复
7
gwsan|  楼主 | 2019-8-5 13:50 | 只看该作者
通过简单的几个步骤,我们就配置好了按键所需要的文件。 下面我们来看看协议栈是检测到按键按下时候是如何处理的,16 位必须只占 1 位,所以只能 16个任务。我们回到熟悉的 SampleApp.c 文件,找到按键时间处理 KEY_CHANGE 事件的函数:


进入 SampleApp_HandleKeys()函数,加入我们的按键处理函数。这里是SW_6,也即是我们刚定义好的开发板上的 S1。


使用特权

评论回复
8
gwsan|  楼主 | 2019-8-5 13:51 | 只看该作者
4.2实验现象

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

图4-6

使用特权

评论回复
9
phosphate| | 2019-8-6 14:40 | 只看该作者
感谢分享!学习一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

3426

帖子

1

粉丝