CC2530
昂德森科技
因为热爱,所以拼搏。
展开
-
zstack协议栈广播
本次要完成的是协调器组网成功后每隔5秒广播一个“0123456789”,并且led1灯快速闪烁5次,终端收到"0123456789"后显示到串口上,并且给协调器发送一个OK,协调器收到OK后led2闪烁5次。原创 2023-01-17 17:05:10 · 504 阅读 · 0 评论 -
zstack协议栈串口
测试发现正常,这下我们可以顺着思路,让协调器组网,终端节点加入网络,然后通过上位机给协调器发指令,协调器转发指令到终端节点,然后控制终端节点。这个是回调函数,就是收到串口发来的指令然后做出相应的处理,这里的逻辑就是收到255打开led1,发送254关闭led1。我们今天测试的是通过串口工具来给协调器发指令,让协调器上的LED1点亮或熄灭。zstack协议栈中串口已经被封装好了,主要有如下几个函数。首先定义串口,配置串口,然后打开串口,配置串口回调函数。原创 2023-01-17 14:28:29 · 664 阅读 · 0 评论 -
ZStack协议栈点对点通信
因为我们要模拟终端节点向协调器发送数据,协调器对发送的数据判断然后做相应的处理,所以添加Coordinator.c和Coordinator.h还有EndDevice.c和EndDevice.h四个文件。协调器主要是收发终端节点的数据然后汇总这些数据,你可以把这些数据传给上位机等等,终端节点主要用来采集各种传感器数据,协调器首先创建网络,终端节点加入网络,这里面的具体细节还是很有趣的。这个点对点通信主要是终端节点向协调器发送命令D1,协调器收到命令后判断数据是否为D1如果是则会调用闪烁LED的库函数。原创 2023-01-17 11:13:09 · 1365 阅读 · 0 评论 -
zstack自定义用户事件
我们这里是想组网成功后触发用户自定义定时器事件每隔5秒D3灯状态翻转一次,这里我们看到库函数HalLedSet()的第二个参数改变了,这就是设置反转led灯的。接着我们加入定时器在用户自定义事件中,一般加入定时器是为了一秒一秒的收发各类传感器数据,我们采集数据肯定要自定义成一个定时器的用户自定义事件。zstack中有很多任务,任务也就对应事件,系统中有很多系统事件,也可以自定定义自己想要的事件,用户自定义事件的流程如下。这个基本的自定义用户事件是协调器组网成功让第三个灯亮。先声明一个局部变量保存状态。原创 2023-01-17 11:11:30 · 288 阅读 · 0 评论 -
CC2530上位机
上位机可实现温度湿度的采集,风扇照明的控制,数据可通过mysql数据库或文本文件保存,实现了温湿度数据可视化显示,增加了数据库登录模块。这个项目是3月份完成的,一直没时间完善,下一步我会增加更多功能并实现小程序端。下位机采用了DHT11 OLED 电机 继电器 CC2530开发板等材料。上下位机通过串口通信。原创 2022-12-31 15:57:47 · 682 阅读 · 0 评论 -
CC2530射频通信
今天这个实验也是学校做,我就看了一下网上的视频然后改了一点代码,就是发送板A上按键中断实现点亮接收板B上D1D2小灯。现象如下:这个距离还是挺远的发送模块的代码:#include<ioCC2530.h>#define SENDVAL 5char SendPacket[]={0x0c,0x61,0x88,0x00,0x07,0x20,0xEF,0xBE,0x20,0x50,SENDVAL};//第一个字节0x0C含义,这个自己后面还有12个字节要发送//第5 6个字节表示原创 2022-05-31 19:14:33 · 1341 阅读 · 0 评论 -
zstack模拟任务调度
这个是善学坊的代码,官网也有,不得不说人家的代码小巧玲珑,真是像诗一样#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#include <stdint.h>#include <ioCC2530.h>#define LED P1_1#define LED_ON 1#define LED_OFF 0#de原创 2022-05-27 15:51:25 · 210 阅读 · 1 评论 -
CC2530步进电机
.h:#include <ioCC2530.h>typedef unsigned char uchar;typedef unsigned int uint;#define A1 P0_4 //定义步进电机连接端口#define B1 P0_5#define C1 P0_6#define D1 P0_7//改变这个参数可以调整电机转速,数字越小,转速越快,力矩越小uchar ucSpeed = 2; //调整速度 建议在1-10范围内uchar FFW[.原创 2022-05-22 13:40:41 · 957 阅读 · 2 评论 -
oled cc2530
oled的驱动:字库(codetab.h):/***************************16*16的点阵字体取模方式:共阴--列行式--逆向输出*********/unsigned char F16x16[] = { 0x00,0x3E,0x22,0xE2,0x22,0x3E,0x00,0xFE,0x22,0x22,0x22,0x22,0x22,0xE2,0x02,0x00,0x20,0x3F,0x20,0x1F,0x11,0x11,0x00,0x7F,0x44,0x44,0x原创 2022-05-13 20:08:16 · 596 阅读 · 0 评论 -
CC2530繼電器
#include <iocc2530.h>typedef unsigned char uchar;typedef unsigned int uint;#define DATA_PIN P0_5void DelayMS(uint msec){ uint i,j; for(i=0;i<msec;i++) for(j=0;j<535;j++);}void main(void){ P0DIR |= 0x20; while(1) { DAT原创 2022-05-01 23:07:55 · 553 阅读 · 0 评论 -
CC2530中断唤醒
程序本来都写好了,花了将近一个多小时才找到一个小错误,我都想扇我一巴掌#include "iocc2530.h"#define RLED P1_0#define YLED P1_1#define uint unsigned int#define uchar unsigned char#define DELAY 15000void Delay(void);void Init_IO_AND_LED(void);void SysPowerMode(uchar mode);void Dela原创 2022-04-22 18:24:29 · 491 阅读 · 0 评论 -
CC2530睡眠定时器
把代码写成诗歌吧#include "iocc2530.h"#define led1 P1_0#define led2 P1_1#define uint unsigned int#define uchar unsigned char#define uint32 unsigned long#define CRYSTAL 0#define RC 1char LEDBLINK;void Set_ST_Period(uint sec);void Init_SLEEP_TIMER(void原创 2022-04-21 21:00:54 · 947 阅读 · 0 评论 -
CC2530片内温度采集(串口发送)
头文件:#include "iocc2530.h"#define uint unsigned int#define RLED P1_0#define GLED P1_1#define YLED P0_4// Datatypedef unsigned char BYTE;// Signed numberstypedef unsigned char UINT8;typedef unsigned char INT8U;typedef unsigned short UINT原创 2022-04-20 14:09:59 · 2640 阅读 · 0 评论 -
CC2530串口(QT控制led)
#include <iocc2530.h>char ch;//晶振配置void Cfg32M(){ SLEEPCMD &=0xFB; while(0==(SLEEPSTA & 0x40)); CLKCONCMD &=0xF8; CLKCONCMD &=0xBF; while(1==(CLKCONSTA & 0x40)); SLEEPCMD |=0x40;}void UartCfg(){ //1111 1110.原创 2022-04-19 15:02:04 · 504 阅读 · 0 评论 -
CC2530定时器1 定时器3使led不同频率闪烁
#include <iocc2530.h>#define led1 P1_0#define led2 P1_1#define uint unsigned intuint count1=0;uint count2=0;void init_T1(){ CLKCONCMD &=~0x7F; while(CLKCONCMD & 0x40); EA=1; T1IE=1; T1CTL=0x05; led1=0; led2=1;}void in原创 2022-04-18 19:23:17 · 1671 阅读 · 0 评论 -
CC2530定时器1 控制LED闪烁
P1_1作为LED灯使能位#include <iocc2530.h>#define LED P1_1#define uint unsigned int uint count=0;void init_T1(){ P1SEL &=0xFD; P1DIR |=0x02; //晶振设为32MHZ CLKCONCMD &= ~0x7F; //等待晶振稳定 while(CLKCONCMD & 0x40); EA=1; T1IE=1; T1原创 2022-04-18 17:56:52 · 3384 阅读 · 0 评论 -
CC2530 外部中断
我这个是让P0_1作为按键通过外部中断来控制P1_0led灯,一般设置外部中断要开中断,组中断,位中断等#include <iocc2530.h>void delay(){ int i,j; for(i=0;i<1000;i++); for(j=0;j<100;j++);}void init_led(){ P1SEL &=0xFE; //让P1_0处于普通IO口 非外设1111 1110 P1DIR |=0x01; //让P1_0原创 2022-04-18 11:39:54 · 644 阅读 · 0 评论 -
cc2530按键控制LED灯
我平多多买的板子商家没给我原理图,我很无语,然后今天学按键控制终于找到了一个原理图:和我的配套![在这里插入图片描述](https://img-blog.csdnimg.cn/2f5744b041c44dcdba75f4249e35e440.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5byg6Iqu5pmo,size_20,color_FFFFFF,t_70,g_se,x_16)![在这里插入原创 2022-04-17 17:23:19 · 3585 阅读 · 0 评论 -
CC2530第一个里程碑点亮LED
终于我的板子还有仿真器全回来了,终于可以玩板子了。1 打开IAR,点击Project,Create New Project2 选择8051,空的工程,起名保存:成功后出现:3 然后我们要给工程新建一个C语言文件,首先新建文件,SAVE,起名保存:新建文件就是工具栏的这个,保存也有:4 把C文件添加到Projrct下面:5 编译,这是会弹出对话框:你自己保存一个工作空间,此时项目是这样:你添加一个main函数再编译就好了:6 我们来看看文件下的组织与内容:.dep .原创 2022-04-16 19:51:06 · 1277 阅读 · 0 评论