www.openedv.com
您好,欢迎您!    会员注册 | 登入 
公告:欢迎访问www.openedv.com开源电子网,开源共享共同进步,祝您新年快乐,万事如意!
设为首页 | 加入收藏
论坛首页 » DIY资料分享区 前往: 
发一个51的si4432调试程序
发表人 内容
[Down] [Up]
[楼主位] yyzhen

等级:NO
注册时间:
2011/08/16 14:34
文章: 2
来自: 河南
离线

#include<reg51.h>
 #include"uart.h"
#include"spi.h"
#include"rf4432.h"
#define uchar unsigned char
#define uint unsigned int
#define LampOn LED=0;
#define LampOff LED=1;
sbit LED=P1^0;
sbit btn_press=P2^7;
//-------------------------------------------射频芯片相关定义--------------------------------
#define RF4432_TxBuf_Len 10
#define RF4432_RxBuf_Len 5   //定义RF4432数据包长度
char  RF4432_RxBuf[RF4432_RxBuf_Len];
char  RF4432_TxBuf[RF4432_TxBuf_Len]={0x30,0x31,0x32,3,4,5,6,7,8,9};
char    A[RF4432_TxBuf_Len];
//uchar FSK[10]={0xaa,0xaa,0x00,0xaa,0x00,0x00,0x00,0xaa,0x00,0x00};
bit send_enable=0;
bit receive_enable=1;
/////////////////////////////////////////////////////////////////
//  RF4432_SDI=1;  //SPI数据输入
//  RF4432_SCLK=1;  //SPI时钟输入端口
//  RF4432_SEL=1;  //SPI片选
//  RF4432_SDI=0;  //SPI数据输入
//  RF4432_SCLK=0;  //SPI时钟输入端口
//  RF4432_SEL=0;  //SPI片选
////////////////////////////////////////////////////////////////////
void main(void)
{
 unsigned char i,send_enable=0;
 LampOn;
// init();
    btn_press=1;
 UART_Init();
 SPI_Init();
 UART_Send_Str("初始化完毕....\n");
 RF4432_Init();
 UART_Send_Str("RF芯片si4432初始化完毕....\n");
 RF4432_SetRxMode();  //设置成接收模式
 UART_Send_Str("模块处于接收状态....\n");
 while(1)
 {
         if(RF4432_RxPacket())
    {
     RF4432_ReadBurestReg(FIFO_ACCESS,RF4432_RxBuf,RF4432_RxBuf_Len);
     for(i=0;i<RF4432_RxBuf_Len;i++)
      {
       //serialsend(RF4432_RxBuf[i]);
       UART_Send_Byte(RF4432_RxBuf[i]); //向串口发送接收到的数据
       delay_10us(10);
      }
     RF4432_SetRxMode(); //设置成接收模式
         UART_Send_Str("成功接收完毕,恢复到接收状态....\n");
    // send_enable=1;
    } 
    
    LampOn; delay(50) ;LampOff;delay(50) ;
     if(btn_press==0)
     {
      while(btn_press==0);
       UART_Send_Str("按键被按下,开始发送....\n");
         send_enable=1; 
     }
     else send_enable=0;
   if(send_enable)
         {
        send_enable=0;
     // UART_Send_Str("开始发送....\n");
        /*for(i=1;i<RF4432_TxBuf_Len;i++)
     {
      RF4432_TxBuf[i]=RF4432_RxBuf[i];
     }*/
        RF4432_TxPacket();
        RF4432_SetRxMode(); //设置成接收模式
        UART_Send_Str("发送完毕,恢复到接收状态....\n");
          }
   
   
    }
}

 

 


 




[加为好友] 回复 引用回复
[Down] [Up]
[1楼] 正点原子


等级:NO
注册时间:
2010/12/02 10:41
文章: 8089
来自: 湖南
在线

买的模块么?
能传输多远?测试过没,这东西据说可以传2KM啊。。。



我的淘宝小店:http://shop62103354.taobao.com
[加为好友] 回复 引用回复
 
前往: 

Powered by ALIENTEK工作室 © 粤ICP备12000418号-1