物联网开发CC2530点对点人体传感器

1|0物联网开发CC2530点对点人体传感器

1|1题目

T2

1|2分析

  • 人体传感器的输入引脚为P0_1,初始化为输入

1|3代码A

#include "hal_defs.h" #include "hal_cc8051.h" #include "hal_int.h" #include "hal_mcu.h" #include "hal_board.h" #include "hal_led.h" #include "hal_rf.h" #include "basic_rf.h" #include "hal_uart.h" #include <stdio.h> #include <string.h> #include <stdarg.h> /*****点对点通讯地址设置******/ #define RF_CHANNEL 25 // 频道 11~26 #define PAN_ID 0x3520 //网络id #define MY_ADDR 0xA //本机模块地址 #define SEND_ADDR 0xB //发送地址 /**************************************************/ static basicRfCfg_t basicRfConfig; // 无线RF初始化 void ConfigRf_Init(void) { basicRfConfig.panId = PAN_ID; basicRfConfig.channel = RF_CHANNEL; basicRfConfig.myAddr = MY_ADDR; basicRfConfig.ackRequest = TRUE; while(basicRfInit(&basicRfConfig) == FAILED); basicRfReceiveOn(); } void init(){//初始化 P1SEL &=~0x1F; P1DIR |= 0x1B; P0SEL &=~0x01<<1; P0DIR |= 0x01<<1; P1_0 = 1; P1_1 = 0; } /********************MAIN************************/ void main(void) { halBoardInit();//选手不得在此函数内添加代码 ConfigRf_Init();//选手不得在此函数内添加代码 init(); unsigned int t = 0; while(1) { /* user code start */ halMcuWaitMs(1); t++;if(t == 1000){//1000ms发送一次 t = 0; if(P0_1){//是否收到人体信号 P1_1 = 1; basicRfSendPacket(SEND_ADDR,"1有人",5);//发送信号 }else{ basicRfSendPacket(SEND_ADDR,"0无人",5); P1_1 = 0; } } /* user code end */ } }

1|4代码B

#include "hal_defs.h" #include "hal_cc8051.h" #include "hal_int.h" #include "hal_mcu.h" #include "hal_board.h" #include "hal_led.h" #include "hal_rf.h" #include "basic_rf.h" #include "hal_uart.h" #include <stdio.h> #include <string.h> #include <stdarg.h> /*****点对点通讯地址设置******/ #define RF_CHANNEL 25 // 频道 11~26 #define PAN_ID 0x3520 //网络id #define MY_ADDR 0xB //本机模块地址 #define SEND_ADDR 0xA //发送地址 /**************************************************/ static basicRfCfg_t basicRfConfig; // 无线RF初始化 void ConfigRf_Init(void) { basicRfConfig.panId = PAN_ID; basicRfConfig.channel = RF_CHANNEL; basicRfConfig.myAddr = MY_ADDR; basicRfConfig.ackRequest = TRUE; while(basicRfInit(&basicRfConfig) == FAILED); basicRfReceiveOn(); } void init(){//初始化引脚 P1SEL &=~0x1F; P1DIR |= 0x1B; P1_0 = 1; P1_1 = 0; } /********************MAIN************************/ void main(void) { halBoardInit();//选手不得在此函数内添加代码 ConfigRf_Init();//选手不得在此函数内添加代码 init(); unsigned char arr[10]; while(1) { /* user code start */ if(basicRfPacketIsReady()){//开始接收无线数据 basicRfReceive(arr,5,NULL);//接收无线数据 if(arr[0] == '1')P1_1 = 1;else P1_1 = 0;//设置亮灯 halUartWrite(arr,10);//串口输出 } /* user code end */ } }

__EOF__

本文作者~内个臣呐~
本文链接https://www.cnblogs.com/Xin-chen/p/16801331.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ~内个臣呐~  阅读(188)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示