cc1101 ASK发射模式
cc1101 配置 433.919830Mhz 1.19948kBaud 199.951172 58.035714
#ifndef _CC1100_H_
#define _CC1100_H_
#define CC_IOCFG2 0x00 //GDO2 输出脚配置
#define CC_IOCFG1 0x01 //GDO1 输出脚配置
#define CC_IOCFG0 0x02 //GDO0 输出脚配置
#define CC_FIFOTHR 0x03 //RX FIFO 和TX FIFO门限
#define CC_SYNC1 0x04 //同步词汇,高字节
#define CC_SYNC0 0x05 //同步词汇,低字节
#define CC_PKTLEN 0x06 //数据包长度
#define CC_PKTCTRL1 0x07 //数据包自动控制
#define CC_PKTCTRL0 0x08 //数据包自动控制
#define CC_ADDR 0x09 //设备地址
#define CC_CHANNR 0x0A //信道数
#define CC_FSCTRL1 0x0B //频率合成器控制
#define CC_FSCTRL0 0x0C //频率合成器控制
#define CC_FREQ2 0x0D //频率控制词汇,高字节
#define CC_FREQ1 0x0E //频率控制词汇,中间字节
#define CC_FREQ0 0x0F //频率控制词汇,低字节
#define CC_MDMCFG4 0x10 //调制器配置
#define CC_MDMCFG3 0x11 //调制器配置
#define CC_MDMCFG2 0x12 //调制器配置
#define CC_MDMCFG1 0x13 //调制器配置
#define CC_MDMCFG0 0x14 //调制器配置
#define CC_DEVIATN 0x15 //调制器背离设置
#define CC_MCSM2 0x16 //主通信控制状态机配置
#define CC_MCSM1 0x17 //主通信控制状态机配置
#define CC_MCSM0 0x18 //主通信控制状态机配置
#define CC_FOCCFG 0x19 //频率偏移补偿配置
#define CC_BSCFG 0x1A //位同步配置
#define CC_AGCCTRL2 0x1B //AGC 控制
#define CC_AGCCTRL1 0x1C //AGC 控制
#define CC_AGCCTRL0 0x1D //AGC 控制
#define CC_WOREVT1 0x1E //高字节时间0暂停
#define CC_WOREVT0 0x1F //低字节时间0暂停
#define CC_WORCTRL 0x20 //电磁波激活控制
#define CC_FREND1 0x21 //前末端RX配置
#define CC_FREND0 0x22 //前末端TX配置
#define CC_FSCAL3 0x23 //频率合成器校准
#define CC_FSCAL2 0x24 //频率合成器校准
#define CC_FSCAL1 0x25 //频率合成器校准
#define CC_FSCAL0 0x26 //频率合成器校准
#define CC_RCCTRL1 0x27 //RC 振荡器配置
#define CC_RCCTRL0 0x28 //RC 振荡器配置
#define CC_FSTEST 0x29 //频率合成器标度
#define CC_PTEST 0x2A //产品测试
#define CC_AGCTEST 0x2B //AGC 测试
#define CC_TEST2 0x2C //不同的测试设置
#define CC_TEST1 0x2D //不同的测试设置
#define CC_TEST0 0x2E //不同的测试设置
#define CC_SRES 0x30 //重启芯片
#define CC_SFSTXON 0x31 //开启和校准频率合成器
#define CC_SXOFF 0x32 //关闭晶体振荡器
#define CC_SCAL 0x33 //校准频率合成器并关断
#define CC_SRX 0x34 //启用RX
#define CC_STX 0x35 //空闲状态:启用TX
#define CC_SIDLE 0x36 //离开RX/TX
#define CC_SAFC 0x37 //频率合成器的AFC调节
#define CC_SWOR 0x38 //自动RX选举序列(电磁波激活)
#define CC_SPWD 0x39 //当CSn为高时进入功率降低模式
#define CC_SFRX 0x3A //冲洗RX FIFO缓冲
#define CC_SFTX 0x3B //冲洗TX FIFO缓冲
#define CC_SWORRST 0x3C //重新设置真实时间时钟
#define CC_SNOP 0x3D //无操作
#define CC_PARTNUM 0x30 //CC2550 的组成部分数目
#define CC_VERSION 0x31 //当前版本数
#define CC_FREQEST 0x32 //率偏移估计
#define CC_LQI 0x33 //接质量的解调器估计
#define CC_RSSI 0x34 //接收信号强度指示
#define CC_MARCSTATE 0x35 //控制状态机状态
#define CC_WORTIME1 0x36 //WOR 计时器高字节
#define CC_WORTIME0 0x37 //WOR 计时器低字节
#define CC_PKTSTATUS 0x38 //当前GDOx状态和数据包状态
#define CC_VCO_VC_DAC 0x39 //PLL 校准模块的当前设定
#define CC_TXBYTES 0x3A //TX FIFO 中的下溢和比特数
#define CC_RXBYTES 0x3B //RX FIFO 中的下溢和比特数
#define CC_PATABLE 0x3E //********
#define CC_TXFIFO 0x3F //********
#define CC_RXFIFO 0x3F //********
//==============================================================================
#else //发射 0110
#define IOCFG2 0x29 //GDO2 输出脚配置
#define IOCFG1 0x06 //GDO1 输出脚配置 miso
#define IOCFG0 0x2d //GDO0 输出脚配置
#define FIFOTHR 0x47 //RX FIFO 和TX FIFO门限
#define SYNC1 0xd3 //同步词汇,高字节
#define SYNC0 0x91 //同步词汇,低字节
#define PKTLEN 0xff//0xFF //数据包长度
#define PKTCTRL1 0x00 //数据包自动控制 地址校验关 00广播
#define PKTCTRL0 0x35 //数据包自动控制 可变数据包 CRC开启 白化关闭
#define ADDR 0x00 //设备地址
#define CHANNR 0x00 //信道数
#define FSCTRL1 0x06 //频率合成器控制
#define FSCTRL0 0x00 //频率合成器控制
#define FREQ2 0x10 //频率控制词汇,高字节
#define FREQ1 0xb0 //频率控制词汇,中间字节
#define FREQ0 0x71 //频率控制词汇,低字节
#define MDMCFG4 0xf5 //调制器配置 10K波特率
#define MDMCFG3 0x83 //调制器配置
#define MDMCFG2 0x32// //调制器配置
#define MDMCFG1 0x02 //调制器配置
#define MDMCFG0 0xf8 //调制器配置
#define DEVIATN 0x40 //调制器背离设置
#define MCSM2 0x07 //主通信控制状态机配置
#define MCSM1 0x30 //主通信控制状态机配置
#define MCSM0 0x18 //主通信控制状态机配置
#define FOCCFG 0x16// //频率偏移补偿配置
#define BSCFG 0x6C //位同步配置
#define AGCCTRL2 0x43 //AGC 控制
#define AGCCTRL1 0x40 //AGC 控制
#define AGCCTRL0 0x93 //AGC 控制
#define WOREVT1 0x87 //高字节时间0暂停
#define WOREVT0 0x6b //低字节时间0暂停
#define WORCTRL 0xfb //电磁波激活控制
#define FREND1 0x56 //前末端RX配置
#define FREND0 0x11 //前末端TX配置
#define FSCAL3 0xe9 //频率合成器校准
#define FSCAL2 0x2A //频率合成器校准
#define FSCAL1 0x00 //频率合成器校准
#define FSCAL0 0x1F //频率合成器校准
#define RCCTRL1 0x41 //RC 振荡器配置
#define RCCTRL0 0x00 //RC 振荡器配置
#define FSTEST 0x59 //频率合成器标度
#define PTEST 0x7F //产品测试
#define AGCTEST 0x3F //AGC 测试
#define TEST2 0x81 //不同的测试设置
#define TEST1 0x35 //不同的测试设置
#define TEST0 0x09 //不同的测试设置
发射码
void delay_L()
{
delay_us(1200);
}
void delay_S()
{
delay_us(500);
}
void SendRF()
{
unsigned char dat=0,i=0;
_CC1101_GPIO0_H();
delay_us(5000);
_CC1101_GPIO0_L();
delay_us(2500);
_CC1101_GPIO0_H();
delay_us(3000);
_CC1101_GPIO0_L();
delay_us(3000);
_CC1101_GPIO0_H();
delay_us(3000);
_CC1101_GPIO0_L();
delay_us(3000);
dat=0x5a; //a5 c3
for(i=0;i<8;i++)
{
if(dat&0x80)
{
_CC1101_GPIO0_H();
delay_L();
_CC1101_GPIO0_L();
delay_S();
}
else
{
_CC1101_GPIO0_H();
delay_S();
_CC1101_GPIO0_L();
delay_L();
}
dat<<=1;
}
dat=0xa3; //a5 c3补码
for(i=0;i<8;i++)
{
if(dat&0x80)
{
_CC1101_GPIO0_H();
delay_L();
_CC1101_GPIO0_L();
delay_S();
}
else
{
_CC1101_GPIO0_H();
delay_S();
_CC1101_GPIO0_L();
delay_L();
}
dat<<=1;
}
dat=0xc3; //a5 c3
for(i=0;i<8;i++)
{
if(dat&0x80)
{
_CC1101_GPIO0_H();
delay_L();
_CC1101_GPIO0_L();
delay_S();
}
else
{
_CC1101_GPIO0_H();
delay_S();
_CC1101_GPIO0_L();
delay_L();
}
dat<<=1;
}
dat=0xa5; //a5 c3 0101补码
for(i=0;i<8;i++)
{
if(dat&0x80)
{
_CC1101_GPIO0_H();
delay_us(1200);
_CC1101_GPIO0_L();
delay_us(500);
}
else
{
_CC1101_GPIO0_H();
delay_S();
_CC1101_GPIO0_L();
delay_L();
}
dat<<=1;
}
dat=0x5c; //a5 c3
for(i=0;i<8;i++)
{
if(dat&0x80)
{
_CC1101_GPIO0_H();
delay_L();
_CC1101_GPIO0_L();
delay_S();
}
else
{
_CC1101_GPIO0_H();
delay_S();
_CC1101_GPIO0_L();
delay_L();
}
dat<<=1;
}
dat=0x3c; //a5 c3
for(i=0;i<8;i++)
{
if(dat&0x80)
{
_CC1101_GPIO0_H();
delay_L();
_CC1101_GPIO0_L();
delay_S();
}
else
{
_CC1101_GPIO0_H();
delay_S();
_CC1101_GPIO0_L();
delay_L();
}
dat<<=1;
}
_CC1101_GPIO0_H();delay_us(500);
_CC1101_GPIO0_L();delay_us(500);
// PC_ODR&=~0X20;
}
cc1101 ASK发射模式的更多相关文章
- 关于粒子发射(CAEmitterLayer)
技术是条长而远的路,只有不断学习丰富自己的技能才能让自己行走在路上! CAEmitterCell CAEmitterCell: CAEmitterCell是粒子发射系统里的粒子,用CAEmitterC ...
- CAEmitterLayer 粒子发射Layer的相关属性
emitterCells:CAEmitterCell对象的数组,被用于把粒子投放到layer上 birthRate:可以通俗的理解为发射源的个数,默认1.0.当前每秒产生的真实粒子数为=CAEmitt ...
- SI24R2F新一代2.4G超低功耗单发射有源RFID芯片 SI24R2E升级版智能充电安全管理方案首选
目前全国有很多电动车因在充电时电池温度过高,而导致爆炸引起火灾的情况.作为国内RFID行业的推动者,动能世纪联合中科微向IOT应用领域推出新款大功率2.4G射频芯片,并针对电动车防盗.电动车充电桩市场 ...
- Objective-c粒子动画
前面贴过几篇关于SpriteKit的案例文章,其中涉及到的动画都是材质类的图片切换或则常规的动画效果,没涉及到今天要说的粒子动画,今天说的粒子动画就是在游戏中实现更佳炫酷的效果必须使用的类,OC中粒子 ...
- nRF24L01芯片控制——迈向无线的第一步
nRF24L01芯片是一款专供单片机的射频收发芯片.工作于2.4GHz~2.5GHz ISM频段.融合了shockburst技术. 我先列出该芯片的硬件参数资料: 至于每个引脚的具体用途,可以参见技术 ...
- [原创]cocos2d-x研习录-第三阶 特性之粒子系统
我想接触过游戏引擎的同学,对粒子系统应该不会陌生.它用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题.粒子系统在游戏中有着非常广泛的应用,可以模拟很多现象,如火花.爆炸.烟雾. ...
- [ZigBee] 14、Zigbee无线通信前奏——BasicRF 简单无线点对点传输协议
本工程不带zigbee协议栈,作为过渡 实验现象: 一个EB2530(终端A)定义为发射模块,另一个EB2530(终端B)定义为接收模块. 按EB2530(终端A)上的按键,无线控制另一个EB2530 ...
- 如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完
六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...
- iOS核心动画学习整理
最近利用业余时间终于把iOS核心动画高级技巧(https://zsisme.gitbooks.io/ios-/content/chapter1/the-layer-tree.html)看完,对应其中一 ...
随机推荐
- Unity手撸2048小游戏——模块拆分
最近惹女票生气了,想起撸个游戏来哄哄她,加之以前在小恩爱App上,玩过那情侣版的2048,加之她喜欢玩这类益智类的游戏,打算撸一个3D的情侣版2048.不过之前没怎么独立做过游戏,就从2D的开始吧. ...
- Learning by doing
Learning by doing 绪论:读了娄老师的公众号中--<做中学(Learning By Doing)>这篇文章后,深有感触,我想到很多自己之前的事情,很多都是每每想的很好,总是 ...
- GOLANG 基本数据类型 整型
基本数据类型-整型 种类 有符号(负号) int8 int16 int32 int64 无符号(无符号) uint8 uint16 uint32 uint64 架构特定(取决于系统位 ...
- PS切图篇
一.PS界面设置 1.新建(ctrl+n) 初始化尺寸参数 预设:自定 宽度:1920px 高度:自设(如:2000px) 分辨率:72像素/英寸 颜色:RGB/8位 背景内容:透明 存储为预设 2. ...
- matlab basic operation command
Matlab basic operation: >> 5+6 ans = 11 >> 3*4 ans = 12 >> 2^6 ans = 64 >> 1 ...
- centos7 docker activemq
/ cd /home/activemq// wget http://apache.fayea.com/activemq/5.13.3/apache-activemq-5.13.3-bin.tar.gz ...
- Linux中设置服务自启动的三种方式
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc*.d目录中建立/e ...
- 为什么不要使用Response.Close()
不要使用Response.Close() 不要使用Response.Close() 不要使用Response.Close() 1 因为:Close()方法会调用HttpWo ...
- 用CSS3和Canvas来画网格
我们经常使用一些excel表格来处理数据,在html中,我们可以用table来制成表格.今天来看一下一些不同的方法. 方法一:使用CSS3的background的linear-gradient属性 l ...
- 调试多线程 & 查死锁的bug & gcore命令 & gdb对多线程的调试 & gcore & pstack & 调试常用命令
gdb thread apply all bt 如果你发现有那么几个栈停在 pthread_wait 或者类似调用上,大致就可以得出结论:就是它们几个儿女情长,耽误了整个进程. 注意gdb的版本要高于 ...