已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Demo 程序适用范围 Si4431F13 Si4432F20 Si4431F27 RF 模块的参数设置为 FSK 433 5MHz 1 2KBPS 10PPM 频偏 30KHz 调 制带宽 61 2KHz 使能 AFC 使能 CRC PH FIFO 模式 每秒钟发射的固定测试数据为 0 x41 0 x42 0 x43 0 x44 0 x45 0 x46 0 x47 0 x48 0 x49 0 x6d 0 x6d 0 x41 0 x42 0 x43 0 x44 0 x45 0 x46 0 x47 0 x48 0 x49 MCU Microchip high performance 8 bit MCU PIC16F689 include include const unsigned char tx test data 10 0 x41 0 x42 0 x43 0 x44 0 x45 0 x46 0 x47 0 x48 0 x49 0 x6d 每秒发射的固定内容的测试信号 第 10 个数据是前 9 个数据的校验和 define SI4432 PWRSTATE READY01 模块 Ready 状态定义 define SI4432 PWRSTATE TX0 x09 模块 发射状态定义 define SI4432 PWRSTATE RX05 模块 接收状态定义 define SI4432 PACKET SENT INTERRUPT 04 模块 发射完成中断 define SI4432 Rx packet received interrupt 0 x02 模块 收到数据包中断 define TX1 RX0 spi rw 0 x0e 0 x80 0 x01 发射状态的天线开关定义 define TX0 RX1 spi rw 0 x0e 0 x80 0 x02 接收状态的天线开关定义 define TX0 RX0 spi rw 0 x0e 0 x80 0 x00 非发射 接收状态的天线开关定义 define nIRQ RC0 MCU 输入口 define SDO RC1 MCU 输入口 define nSELRC2 MCU 输出口 define SDI RC3 MCU 输出口 define SCKRC4 MCU 输出口 define SDNRC5 MCU 输出口 define nIRQ setTRISC0 设置 IO 口的输入 数出的寄存器 define SDO setTRISC1 设置 IO 口的输入 数出的寄存器 define nSEL setTRISC2 设置 IO 口的输入 数出的寄存器 define SDI setTRISC3 设置 IO 口的输入 数出的寄存器 define SCK setTRISC4 设置 IO 口的输入 数出的寄存器 define SDN setTRISC5 设置 IO 口的输入 数出的寄存器 define INPUT1 define OUTPUT0 unsigned char count 50hz unsigned char ItStatus1 ItStatus2 unsigned char rf timeout unsigned char rx buf 15 typedef struct unsigned char reach 1s 1 unsigned char rf reach timeout 1 unsigned char is tx 1 FlagType FlagType Flag void rx data void void tx data void unsigned char spi byte unsigned char data unsigned char spi rw unsigned char addr unsigned char data void SI4432 init void void delay 1ms unsigned char time void port init void void timer init void void main unsigned char i j chksum OSCCON 0X70 使用内部晶振 8M crystal WDTCON 0X00 看门狗设置 port init IO 口初始化 SDN 1 delay 1ms 10 RF 模块复位 SDN 0 delay 1ms 200 延时 150ms RF 模块进入工作状态 SI4432 init RF 模块初始化 TX0 RX0 天线开关不在发射 接收状态 timer init count 50hz 0 Flag reach 1s 0 INTCON 0 xc0 enable interrupt while 1 if Flag reach 1s Flag reach 1s 0 tx data 每间隔一段时间 发射一包数据 并接收 Acknowledge 信 号 if Flag is tx if nIRQ ItStatus1 spi rw 0 x03 0 x00 清中断 read the Interrupt Status1 register ItStatus2 spi rw 0 x04 0 x00 清中断 SCK 0 nSEL 0 spi byte 0 x7f 从缓冲区读数据 for i 0 i 10 i rx buf i spi byte 0 x00 nSEL 1 spi rw 0 x07 0 x80 SI4432 PWRSTATE READY 数据接收完成 退出接 收模式 chksum 0 for i 0 i 9 i 计算 Checksum chksum rx buf i if chksum rx buf 9 数据收到了 else rx data 收到的数据不对 则要继续开始接收 void delay 1ms unsigned char time unsigned char i k for k 0 k time k for i 0 i 130 i NOP void timer init void T1CON 0 x31 TMR1IE 1 TMR1L 0 x78 定时器中断初始化 TMR1H 0 xec void interrupt ISR timer void unsigned char i if TMR1IF TMR1L 0 x78 20ms 的定时器 TMR1H 0 xec rf timeout if rf timeout 25 Flag rf reach timeout 1 发射 0 5 秒 接收 3 秒的 Timeout 定时器 发 射 接收共用此 Ram count 50hz if count 50hz 50 count 50hz 0 Flag reach 1s 1 一秒 的定时器 TMR1IF 0 void port init void ANSEL 0 ANSELH 0 不使用 的 AD WPUA 0 没有上拉电阻 IOCA 0 没有 IO 口中断 nIRQ set INPUT SDO set INPUT nSEL set OUTPUT SDI set OUTPUT SCK set OUTPUT SDN set OUTPUT TRISB5 OUTPUT void SI4432 init void ItStatus1 spi rw 0 x03 0 x00 清 RF 模块中断 ItStatus2 spi rw 0 x04 0 x00 spi rw 0 x06 0 x80 0 x00 关闭不需要的中断 spi rw 0 x07 0 x80 SI4432 PWRSTATE READY 进入 Ready 模式 spi rw 0 x09 0 x80 0 x7f 负载电容 12P spi rw 0 x0a 0 x80 0 x05 关闭低频输出 spi rw 0 x0b 0 x80 0 xea GPIO 0 当做普通输出口 spi rw 0 x0c 0 x80 0 xea GPIO 1 当做普通输出口 spi rw 0 x0d 0 x80 0 xf4 GPIO 2 输出收到的数据 spi rw 0 x70 0 x80 0 x2c spi rw 0 x1d 0 x80 0 x40 使能 afc 1 2K bps setting spi rw 0 x1c 0 x80 0 x16 下面的设置根据 Silabs 的 Excel spi rw 0 x20 0 x80 0 x83 spi rw 0 x21 0 x80 0 xc0 spi rw 0 x22 0 x80 0 x13 spi rw 0 x23 0 x80 0 xa9 spi rw 0 x24 0 x80 0 x00 spi rw 0 x25 0 x80 0 x04 spi rw 0 x2a 0 x80 0 x14 spi rw 0 x6e 0 x80 0 x09 spi rw 0 x6f 0 x80 0 xd5 1 2K bps setting end spi rw 0 x30 0 x80 0 x8c 使能 PH FIFO 模式 高位在前面 使能 CRC 校验 spi rw 0 x32 0 x80 0 xff byte0 1 2 3 作为头码 spi rw 0 x33 0 x80 0 x42 byte 0 1 2 3 是头码 同步字 3 2 是同步字 spi rw 0 x34 0 x80 16 发射 16 个 Nibble 的 Preamble spi rw 0 x35 0 x80 0 x20 需要检测 4 个 nibble 的 Preamble spi rw 0 x36 0 x80 0 x2d 同步字为 0 x2dd4 spi rw 0 x37 0 x80 0 xd4 spi rw 0 x38 0 x80 0 x00 spi rw 0 x39 0 x80 0 x00 spi rw 0 x3a 0 x80 s 发射的头码为 swwx spi rw 0 x3b 0 x80 w spi rw 0 x3c 0 x80 w spi rw 0 x3d 0 x80 x spi rw 0 x3e 0 x80 10 总共发射 10 个字节的数据 spi rw 0 x3f 0 x80 s 需要校验的头码为 swwx spi rw 0 x40 0 x80 w spi rw 0 x41 0 x80 w spi rw 0 x42 0 x80 x spi rw 0 x43 0 x80 0 xff 头码 1 2 3 4 的所有位都需要校验 spi rw 0 x44 0 x80 0 xff spi rw 0 x45 0 x80 0 xff spi rw 0 x46 0 x80 0 xff spi rw 0 x6d 0 x80 0 x07 设置为最大功率发射 spi rw 0 x79 0 x80 0 x0 不需要跳频 spi rw 0 x7a 0 x80 0 x0 不需要跳频 spi rw 0 x71 0 x80 0 x22 发射不需要 CLK FiFo FSK 模式 spi rw 0 x72 0 x80 0 x30 频偏为 30KHz spi rw 0 x73 0 x80 0 x0 没有频率偏差 spi rw 0 x74 0 x80 0 x0 没有频率偏差 spi rw 0 x75 0 x80 0 x53 频率设置 433 5 spi rw 0 x76 0 x80 0 x57 spi rw 0 x77 0 x80 0 x80 void rx data void unsigned char i chksum Flag is tx 0 spi rw 0 x07 0 x80 SI4432 PWRSTATE READY 进入 Ready 模式 delay 1ms 5 TX0 RX1 设置天线开关 spi rw 0 x08 0 x80 0 x03 清发射 接收缓冲区 spi rw 0 x08 0 x80 0 x00 清发射 接收缓冲区 spi rw 0 x07 0 x80 SI4432 PWRSTATE RX RF 模块进入接收模式 spi rw 0 x05 0 x80 SI4432 Rx packet received interrupt RF 模块收到整包数据后 产生中断 ItStatus1 spi rw 0 x03 0 x00 清掉现有的中断标志 ItStatus2 spi rw 0 x04 0 x00 清掉现有的中断标志 void tx data void unsigned char i Flag is tx 1 spi rw 0 x07 0 x80 SI4432 PWRSTATE READY rf 模块进入 Ready 模式 TX1 RX0 设置天线开关的方向 delay 1ms 5 延时 5ms 让系统稳定 spi rw 0 x08 0 x80 0 x03 spi rw 0 x08 0 x80 0 x00 清发射 接收缓冲区 spi rw 0 x34 0 x80 40 发射 40 个 Nibble 的前导码 spi rw 0 x3e 0 x80 10 总共发射 10 个字节的数据 for i 0 i 10 i spi rw 0 x7f 0 x80 tx test data i 将要发射的数据载入缓冲区 spi rw 0 x05 0 x80 SI4432 PACKET SENT INTERRUPT 整包数据发射完后 产生中 断 ItStatus1 spi rw 0 x03 0 x00 清 RF 模块中断 ItStatus2 spi rw 0 x04 0 x00 spi rw 0 x07 0 x80 SI4432 PWRSTATE TX 进入发射模式 rf timeout 0 Fla
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 叙事护理:护理叙事的艺术与技巧
- 偏头痛常见症状与护理方法
- 2026年高端鲜花定制公司定制服务合同合规审核制度
- 浙海院生物统计学习题
- 2026年高端私人影院建设公司施工场地隐私保护管理制度
- 脑膜炎常见症状及护理计划
- 2024-2025学年浙江省钱塘联盟高一上学期11月期中地理试题
- 最美的春天课件
- 感冒的预防与控制措施讲解
- 输液港植入术科普
- 大学生成长手册
- 监理实施细则模板(信息化、软件工程)
- 《中药调剂技术》课件 模块二任务四调配
- 《失血性休克急救护理专家共识》解读
- DB63-T 2333-2024 锅炉节能环保使用管理规范
- 《电脑重装系统教程》课件
- 桥小脑角肿瘤的护理
- GB/T 15969.2-2024可编程序控制器第2部分:设备要求和测试
- 采购总监年终工作汇报
- 体育赛事策划与管理
- 《火灾自动报警》课件
评论
0/150
提交评论