资源简介
si4432无线测试程序 在两个无线模块之间相互传输数据
代码片段和文件信息
/*
Demo 程序适用范围: Si4431F13 Si4432F20 Si4431F27
RF 模块的参数设置为: FSK, 433.5MHz, 1.2KBPS, +/-10PPM 频偏:30KHz, 调制带宽:61.2KHz
使能AFC,使能CRC, PH + FIFO 模式 头码:“swwx“ 同步字: 0x2d 0xd4
每秒钟发射的固定测试数据为:
0x410x420x430x440x450x460x470x480x490x6d
0x6d是发生数据的 CheckSum 0x6d = (0x41 +0x42 +0x43 +0x44 +0x45 +0x46 +0x47 + 0x48 +0x49)
控制MCU : 8 bit MCU :STC89C52 11.0592MHZ
*/
#include //52寄存器
#include
#include
#define SI4432_PWRSTATE_READY 01 // 模块 Ready 状态定义
#define SI4432_PWRSTATE_TX 0x09 // 模块 发射状态定义
#define SI4432_PWRSTATE_RX 05 // 模块 接收状态定义
#define SI4432_PACKET_SENT_INTERRUPT 04 // 模块 发射完成中断
#define SI4432_Rx_packet_received_interrupt 0x02 // 模块 收到数据包中断
#define TX1_RX0 spi_rw(0x0e|0x80 0x01) // 发射状态的天线开关定义
#define TX0_RX1 spi_rw(0x0e|0x80 0x02) // 接收状态的天线开关定义
#define TX0_RX0 spi_rw(0x0e|0x80 0x00) // 非发射,接收状态的天线开关定义
//========================================SI4432与MCU连接========================================
sbit SDN = P3^3;
sbit nIRQ = P1^4;
sbit nSEL = P1^3;
sbit SCK = P1^2;
sbit SDI = P1^1;
sbit SDO = P1^0;
//========================================按键端口===============================================
sbit KEY = P3^6;
//========================================LED显示端口============================================
sbit LED = P3^4;
unsigned char ItStatus1 ItStatus2;
unsigned char rf_timeout;
unsigned char rx_buf[15];
// 检测到按键后发射的固定内容的测试信号,第10个数据是前9个数据的校验和
const unsigned char tx_test_data[10] = {0x410x420x430x440x450x460x470x480x490x6d};
//===============================================================================================
typedef struct
{
unsigned char reach_1s : 1;
unsigned char rf_reach_timeout : 1;
unsigned char is_tx : 1;
} FlagType;
FlagType Flag;
//==============================================函数申明===========================================
void delay_1ms(unsigned char time);
unsigned char spi_byte(unsigned char TRdata);
unsigned char spi_rw(unsigned char addr unsigned char TRdata);
void rx_data(void);
void tx_data(void);
void SI4432_init(void);
//================================================延时函数=========================================
void delay_1ms(unsigned char time)
{
unsigned char ik;
for(k = 0; k< time; k++)
{
for(i = 0; i<130; i++)
{
_nop_();
}
}
}
//===============================================SPI读写函数=======================================
unsigned char spi_byte(unsigned char TRdata)
{
unsigned char i;
for (i = 0; i < 8; i++) // 控制SCK 和 SDI,发射一个字节的命令,同事读取1个字节的数据
{ // 没有包括nSEL的控制
if (TRdata & 0x80)
SDI = 1;
else
SDI = 0;
TRdata <<= 1;
SCK = 1;
if (SDO)
TRdata |= 0x01;
else
TRdata &= 0xfe;
SCK = 0;
}
return (TRdata);
}
//-------------------------------------------对寄存器读写操作=================================
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13318 2013-08-30 17:04 si4432-b1-test
文件 20894 2013-08-30 17:04 si4432-b1-test.LST
文件 14037 2013-08-30 17:04 si4432-b1-test.M51
文件 14843 2013-08-30 17:04 si4432-b1-test.OBJ
文件 1047 2013-09-19 14:30 si4432-b1-test.Opt
文件 2157 2013-08-28 11:49 si4432-b1-test.Uv2
文件 9985 2011-11-14 16:56 si4432-b1-test.c
文件 2899 2013-08-30 17:04 si4432-b1-test.hex
文件 60 2013-08-30 17:04 si4432-b1-test.lnp
文件 232 2013-09-19 14:29 si4432-b1-test.plg
文件 1433 2013-08-30 19:14 si4432-b1-test_Opt.Bak
文件 2009 2011-10-15 15:02 si4432-b1-test_Uv2.Bak
- 上一篇:Stata15mp绿色中文版地址.txt
- 下一篇:Ubuntu常用命令
相关资源
- RTL8188EVT USB WIFI无线网卡驱动 免费版
- RTL8188 USB无线网卡模块完整方案
-
li
nksys AE1000/Cisco AM10无线网卡驱动 - 基于SPCE061A的无线环境监控系统设计
- 2.4 GHz无线收发芯片A7105及其应用
- 基于Blackfin的无线IP视频监控解决方案
- 物联网家居系统中基于单片机的多路
- 基于PIC的TCP/IP网络协议和zigbee无线传
- 物联网中无线传感器节点和RFID数据融
- 用于无线传感器网络应用的超声波传
- 有关面向工业物联网的无线传感器网
- 物联网无线传感器网络的7大特点
- 采用NFC技术的无线遥控器系统电路设
- 无电池近场通信 (NFC) 键盘设计方案
- 基于ARM和GPRS的无线通信系统设计
- IEEE 802.15.4的CC2530无线数据收发设计
- IEEE 802.15.4的CC2530无线数据收发设计
- 蓝牙无线抄表传感器的设计
- 低功耗蓝牙无线传感器
- 联想ThinkPade470无线网驱动
- 戴尔dell km636无线键盘鼠标套装驱动
- 戴尔dell TP713无线触摸板驱动 v1.0 官网
- 戴尔d630无线网卡驱动 v1.3.2 官方最新
- IntelPRO/无线2011局域网方案
- 卡皇RTL8187芯片网卡驱动 Win7 x86x64官方
- YDC_079-2009_移动用户终端无线局域网技
- 3GPP TS 38.104 V16.0.0.pdf--5G基站无线发送
- IBM ThinkPad T42无线网卡驱动
- IBM ThinkPad T30笔记本无线网卡驱动程序
- 基于无线传感网络的矸石山自燃监测
评论
共有 条评论