basicRF双向灯光控制
题目:
实现基于BasicRF无线点对点通信的双向灯光控制,具体要求如下:
1> 节点A 和节点B 的PANID设置为0x1234,通道号设置为17,节点地址自定义。
<2> 按下节点A的SW1按键,松开后,向节点B发送1个字节的无线数据。节点B接收到新的无线数据后,判断该数据如果为0xa2,则切换节点B中D4灯的开关状态。
<3> 按下节点B的SW1按键,松开后,向节点A发送1个字节的无线数据。节点A接收到新的无线数据后,判断该数据如果为0xa2,则切换节点A中D4灯的开关状态。
注:<1> D4灯,连接到CC2530的P1_1引脚。
<2> SW1按键;连接到CC2530的P1_2引脚。
配置点对点无线通信的基本参数
#define RF_CHANNEL 17 // 频道 11~26
#define PAN_ID 0x1234 //网络id
配置节点信息
//节点A的地址信息
#define MY_ADDR 0x000a //本机模块地址
#define SEND_ADDR 0x000b //发送地址 //节点B的地址信息
//#define MY_ADDR 0x000b //本机模块地址
//#define SEND_ADDR 0x000a //发送地址
变量定义与函数声明
#define D4 P1_1
#define SW1 P1_2 unsigned char cmd = 0xa2; //无线发送的命令字
unsigned char dat = ; //无线接收的数据 void Init_Port(); //初始化D4灯与SW1按键
void Delay(unsigned char t); //普通延时函数
void Scan_Keys(); //按键扫描处理函数
void Recv_RF_Data(); //无线数据接收处理函数
端口初始化函数的实现
void Init_Port()
{
//初始化D4灯和D5灯的端口P1_1
P1SEL &= ~0x02; //P1_1为通用I/O端口
P1DIR |= 0x02; //P1_1端为输出口
//初始化SW1按键的端口P1_2
P1SEL &= ~0x04; //P1_2为通用I/O端口
P1DIR &= ~0x04; //P1_2端为输出口
P1INP &= ~0x04; //P1_2设置为上拉/下拉模式
P2INP &= ~0x40; //P1_2设置为上拉 D4 = ;
}
延时函数
void Delay(unsigned char t)
{
while(t--);
}
按键扫描函数
void Scan_Keys()
{
if(SW1 == )
{
Delay();
if(SW1 == ) //确定SW1按键按下
{
while(SW1 == ); //等待SW1按键松开
basicRfSendPacket(SEND_ADDR, &cmd, );
}
}
}
无线数据接收处理函数的实现
void Recv_RF_Data()
{
if(TRUE == basicRfPacketIsReady()) //接收到新的无线数据
{
basicRfReceive(&dat, , NULL); //读出1个字节数据到dat变量
if(dat == 0xa2) //判断接收数据是否为0xa5
{
D4 = ~D4; //切换D4灯的开关状态
dat = 0x00;
}
}
}
主函数的实现
void main(void)
{
halBoardInit();//选手不得在此函数内添加代码
ConfigRf_Init();//选手不得在此函数内添加代码 Init_Port(); //初始化D4灯和SW1按键的端口 while()
{
/* user code start */
Scan_Keys(); //扫描处理按键
Recv_RF_Data(); //接收处理无线数据
/* user code end */
}
}
basicRF双向灯光控制的更多相关文章
- 基于W5500+Yeelink的远程灯光控制设计
概述 工具:物联网云平台Yeelink DHT11温湿度传感器 W5500EVB 编译环境:Keil4 目的:通过以太网实时监控远程某个位置的温度和湿度 在W5500EVB端连接LED灯.通过W ...
- SPI、I2C、UART、I2S、GPIO、SDIO、CAN 简介
转自http://sanwen.net/a/fmxnjoo.html SPI.I2C.UART.I2S.GPIO.SDIO.CAN,看这篇就够了 总线 总线,总要陷进里面.这世界上的信号都一样,但是总 ...
- SPI、I2C、UART、I2S、GPIO、SDIO、CAN
总线,总线,总要陷进里面.这世界上的信号都一样,但是总线却成千上万,让人头疼. 总的来说,总线有三种:内部总线.系统总线和外部总线.内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连: ...
- 基于Unity 5的次世代卡通渲染技术 -- Unite 2017 米哈游总监贺甲分享实录
在5月12日Unite2017开发者大会上,米哈游技术总监兼美术指导贺甲进行了主题为次世代卡通渲染的演讲.一下为详细分享内容: 大家好,首先自我介绍一下,我叫贺甲,在米哈游担任技术总监和美术指导工作, ...
- 对SPI、IIC、IIS、UART、CAN、SDIO、GPIO的解释
SPI SPI(Serial Peripheral Interface:串行外设接口); SPI总线由三条信号线组成:串行时钟(SCLK).串行数据输出(SDO).串行数据输入(SDI).SPI总线可 ...
- SPI、I2C、I2S、UART、GPIO、SDIO、CAN、JTAG的区别及使用方法。
SPI 全称及由来:SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的. ...
- include的用法例子,以及include+merge的用法例子
[include+LinearLayout]的使用例子 AndroidIncludeLayout.java package com.AndroidIncludeLayout; import andro ...
- 软件产品案例分析----K米app
第一部分 调研.评测 1.1评测 1.1.1 第一次上手体验 1.1.2 bug 1.1.2.1 bug定义 1.1.2.2 栗子 1.1.2.2.1 A级 1.1.2.2.2 B级 1.1.2.2. ...
- USB Keyboard Recorder
catalogue . 引言 . Device Class Definition for Human Interface Devices (HID) . USB HID Report Descript ...
随机推荐
- [算法]Miller-Robbin素数判定
目录 一.实现原理 二.应用 判断一个正整数是否为素数 三.小结 一.实现原理 我们以前都是怎么判断素数的呢: 试除法: 若一个正整数N为合数,则存在一个能整除N的数k,其中\(2\leqslant ...
- python高级特性之封包与解包
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:kwsy PS:如有需要Python学习资料的小伙伴可以加点击下方链接 ...
- D - Harmonious Graph
题目大意: n个点,m条边,两个数l和r,如果l和r相连接,那么对于l和r之间值任意一个数都要和l相连.问达到这一目的需要添加的边的最小数量. 题解: 我们首先要找到当前连通块中最大的那个点,也就是说 ...
- Windows Pains poj 2585
Boudreaux likes to multitask, especially when it comes to using his computer. Never satisfied with j ...
- 【原创干货】大数据Hadoop/Spark开发环境搭建
已经自学了好几个月的大数据了,第一个月里自己通过看书.看视频.网上查资料也把hadoop(1.x.2.x).spark单机.伪分布式.集群都部署了一遍,但经历短暂的兴奋后,还是觉得不得门而入. 只有深 ...
- 65535与TCP连接数的关系测试结论
首先说结论: .是否有关系 .有关系 对于客户端 -.对于客户端来说,只有65535,因为根据TCP四元组的sport来说,sport只有16位,所以(2^16)-1是65535.也就是最多有6553 ...
- 前端JS—显示赋值(一)
一:js代码必须位于<script>js代码</script> 把js代码放到<body>元素的地步,可以改善显示速度 二:js显示数据 使用 window.ale ...
- Spring Boot中的Properties
文章目录 简介 使用注解注册一个Properties文件 使用属性文件 Spring Boot中的属性文件 @ConfigurationProperties yaml文件 Properties环境变量 ...
- LVS DR模式实验
LVS DR模式实验 三台虚拟机,两个台节点机(Apache),一台DR实验调度机 一:关闭相关安全机制 systemctl stop firewalld iptables -F setenforce ...
- linux 之学习路线
原文地址:https://www.oschina.net/question/587367_156024 推荐的发行版如下: UBUNTU 适合纯菜鸟,追求稳定的官方支持,对系统稳定性要求较弱,喜欢最新 ...