資源簡介
關于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 {
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);
}
//-------------------------------------------對寄存器讀寫操作=================================
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13214??2013-11-17?14:55??jask-si4432-test-TXRX?-?副本\si4432-b1-test
?????文件???????9985??2011-11-14?16:56??jask-si4432-test-TXRX?-?副本\si4432-b1-test.c
?????文件???????2899??2013-11-17?14:55??jask-si4432-test-TXRX?-?副本\si4432-b1-test.hex
?????文件?????????60??2013-11-17?14:55??jask-si4432-test-TXRX?-?副本\si4432-b1-test.lnp
?????文件??????20889??2013-11-17?14:55??jask-si4432-test-TXRX?-?副本\si4432-b1-test.LST
?????文件??????14330??2013-11-17?14:55??jask-si4432-test-TXRX?-?副本\si4432-b1-test.M51
?????文件??????14753??2013-11-17?14:55??jask-si4432-test-TXRX?-?副本\si4432-b1-test.OBJ
?????文件???????1388??2013-11-18?15:49??jask-si4432-test-TXRX?-?副本\si4432-b1-test.Opt
?????文件????????196??2013-11-18?19:46??jask-si4432-test-TXRX?-?副本\si4432-b1-test.plg
?????文件???????2022??2013-11-17?14:44??jask-si4432-test-TXRX?-?副本\si4432-b1-test.Uv2
?????文件???????1388??2013-11-17?15:44??jask-si4432-test-TXRX?-?副本\si4432-b1-test_Opt.Bak
?????文件???????2009??2011-10-15?15:02??jask-si4432-test-TXRX?-?副本\si4432-b1-test_Uv2.Bak
?????文件????????168??2012-11-12?09:11??jask-si4432-test-TXRX?-?副本\程序說明.txt
?????目錄??????????0??2013-11-18?22:53??jask-si4432-test-TXRX?-?副本
-----------?---------??----------?-----??----
????????????????83301????????????????????14
評論
共有 條評論