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)看完,对应其中一 ...
随机推荐
- 网络HTTP协议
WebView:在应用中嵌入一个浏览器 ...... webView = (webView)findViewById(R.id.web_view); webView.getSettings().set ...
- 上传图片shell绕过过滤的几种方法
一般网站图片上传功能都对文件进行过滤,防止webshelll写入.但不同的程序对过滤也不一样,如何突破过滤继续上传? 本文总结了七种方法,可以突破! 1.文件头+GIF89a法.(php)//这个很好 ...
- python列表、元祖、字典
python列表 ['a','1','vs2'] 里面的值可以改 python元祖 ('a','1','css','sdf12') 里面的值不能改 python字典 {'s ...
- jquery总结06-动画事件02-上卷下拉动画
.slideDown() 下拉动画 动画执行之后的操作写在回调函数里 $("ele").slideDown(1000, function() { //等待动画执行1秒后,执行别的动 ...
- Grunt_1从安装开始创建一个基本的Grunt
Grunt的介绍:http://www.gruntjs.net/getting-started 文件架构:https://github.com/zhangsai521314/Grunt 1:安装Git ...
- Word,PDF,PPT,TXT之间的转换方法
来源: 刘波的日志 一.把PPT转WORD形式的方法 1.利用"大纲"视图 打开PPT演示文稿,单击"大纲",在左侧"幻灯片/大纲”任务窗格的“大纲” ...
- jQuery innerWidth outerWidth(false/true)
outerWidth默认为false
- IT关键词,发现与更新,点成线,线成面,面成体
时序图 1.什么是时序图 2.如何看懂时序图 3.时序图的作用 4.如何绘制时序图 分布式 一个业务分拆多个子业务,部署在不同的服务器上. 分布式是指将不同的业务分布在不同的地方. 而集群指的是将几台 ...
- MySQL存储IP地址操作
数据库数据表创建语法: DROP TABLE IF EXISTS `admin`; CREATE TABLE IF NOT EXISTS `admin`( `adminid` INT UNSIGNED ...
- PHP require class