资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
/这是在网上收集的程序,版权归原作者所有 NRF905 程序程序(发送部分发送部分) jxj2e1v8v 发表于 2008-3-31 1:56:00 #include #include #include #include #define uint unsigned int #define uchar unsigned char #define BYTE_BIT0 0x01 #define BYTE_BIT1 0x02 #define BYTE_BIT2 0x04 #define BYTE_BIT3 0x08 #define BYTE_BIT4 0x10 #define BYTE_BIT5 0x20 #define BYTE_BIT6 0x40 #define BYTE_BIT7 0x80 /SPI 指令 #define WC 0x00 #define RC 0x10 #define WTP 0x20 #define RTP 0x21 #define WTA 0x22 #define RTA 0x23 #define RRP 0x24 bdata unsigned char DATA_BUF; #define DATA7 (DATA_BUF sbit flag1 =DATA_BUF0; #define TxRxBuf_Len 32 unsigned char TxRxBufTxRxBuf_Len= 0x01,0x02,0x03,0x4,0x05,0x06,0x07,0x08, 0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16, 0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24, 0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32, ; /配置口定义/ sbit TXEN=P10; sbit TRX_CE=P32; sbit PWR=P11; sbit MISO=P16;sbit MOSI=P15; sbit SCK=P17; sbit CSN=P13; / sbit AM=P14; sbit DR=P33; sbit CD=P12; / /sbit DQ=P35 ; /RF 寄存器配置/ unsigned char idata RFConf11= 0x00, /配置命令/0x4c, /CH_NO,配置频段在 423MHZ0x0C, /输出功率为 10db,不重发,节电为正常模式0x44, /地址宽度设置,为 4 字节0x20,0x20, /接收发送有效数据长度为 32 字节0xCC,0xCC,0xCC,0xCC, /接收地址0x58, /CRC 充许,8 位 CRC 校验,外部时钟信号不使 能,16M 晶振 ; bit lcdbit; code TxAddress4=0xcc,0xcc,0xcc,0xcc; /延时/ static void Delay(uchar n) uint i;while(n-)for(i=0;i=650us) unsigned char CheckCD(void) /Pin-检查是否已存在 同频率载波 if (CD=1)return 1;elsereturn 0; void TX(void) SetTxMode();/ Set nRF905 in Tx modeTxPacket();/ Send data by nRF905CheckCD(); / 返回 CD 的当前电平/ SetRF_PA_PWR(unsigned char i); /设置发射功率 void main(void) Inituart();nRF905Init();Config905();while(1)TX(); NRF905 程序程序(接收部分接收部分) jxj2e1v8v 发表于 2008-3-31 1:57:00 #include #include #include #include #define uint unsigned int /0 255 #define uchar unsigned char/ #define BYTE_BIT0 0x01 #define BYTE_BIT1 0x02 #define BYTE_BIT2 0x04 #define BYTE_BIT3 0x08 #define BYTE_BIT4 0x10 #define BYTE_BIT5 0x20 #define BYTE_BIT6 0x40 #define BYTE_BIT7 0x80 / #define WC 0x00 #define RC 0x10 #define WTP 0x20 #define RTP 0x21 #define WTA 0x22 #define RTA 0x23 #define RRP 0x24 bdata unsigned char DATA_BUF; #define DATA7 (DATA_BUF sbit flag1 =DATA_BUF0; #define TxRxBuf_Len 32 unsigned char TxRxBufferTxRxBuf_Len; sbit TXEN=P10; sbit TRX_CE=P32; sbit PWR=P11; sbit MISO=P16; sbit MOSI=P15; sbit SCK=P17; sbit CSN=P13; / sbit AM=P14; sbit DR=P33; sbit CD=P12; / /sbit DQ=P35 ; /RF 寄存器配置/ unsigned char idata RFConf11= 0x00, /配置命令/0x4c,0x0c,0x44,0x20,0x20,0xcc,0xcc,0xcc,0xcc,0x58, /CRC 充许,8 位 CRC 校验,外部时钟信号不使能,16M 晶振 ;bit lcdbit; /80us 延时/ void Delay(uchar n) uint k;while(n-)for(k=0;k=650us) unsigned char CheckDR(void) /检查是否有新数据传入 Data Ready if (DR=1return 1;elsereturn 0; void RxPacket(void) /读数据 uchar i;Delay(1); / TRX_CE=0; / Set nRF905 in standby modeDelay(100);TRX_CE=0;CSN=0; / Spi enable for write a spi commandDelay(1);SpiWrite(RRP);/ Delay(10000);/ Delay(10000); / Read payload commandfor (i = 0 ;i 32 ;i+) / Delay(10000);/ Delay(10000);/ Delay(10000);/ Delay(10000); TxRxBufferi=SpiRead(); / Read data and save to buffer/ Delay(10000);/ Delay(10000);/ Delay(10000); CSN=1;Delay(10);/ Delay(10);TRX_CE=1; / void RX(void) SetRxMode(); / Set nRF905 in Rx mode/Delay(10000);while (CheckDR()=0);/Delay(10000);Delay(10);RxPacket();/Delay(10000); / Recive data by nRF905Delay(10); void StartUART( void ) /波特率 4800SCON = 0x50;TMOD = 0x20;TH1 = 0xFA;TL1 = 0xFA;PCON = 0x00;TR1 = 1; void R_S_Byte(uchar R_Byte) SBUF = R_Byte; while( TI = 0 ); /查询法TI = 0; void main(void) StartUART();nRF905Init();Config905();while(1)char i;RX();Delay(10);CSN=0; for(i=0;i32;i+)/ Delay(1000);P0=TxRxBuffer31;/ Delay(10);R_S_Byte(TxRxBufferi);/ Delay(10);CSN=1;Delay(1);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号