⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2401.txt

📁 无线通信效果受周围环境
💻 TXT
字号:
void nRF2401_powerup_config(void)
{
    int i,j;
    unsigned char congfig_data[18],variable1;
    congfig_data[0]=0x8e;
    congfig_data[1]=0x08;
    congfig_data[2]=0x1c;

    congfig_data[3]=0x08;//119:112
    congfig_data[4]=0x08;//112:104

    congfig_data[5]=0x00;//103:64,channel 2 address
    congfig_data[6]=0xd0;
    congfig_data[7]=0xdd;
    congfig_data[8]=0xdd;
    congfig_data[9]=0xdd;

    congfig_data[10]=0x00;//63:24,channel 1 address
    congfig_data[11]=0xdd;
    congfig_data[12]=0xdd;
    congfig_data[13]=0xdd;
    congfig_data[14]=0xdd;

    congfig_data[15]=0x83;//address width,CRC 16bits
    congfig_data[16]=0x6e;
    congfig_data[17]=0x04;
    
    POWER_UP=0;//power down mode
    CS=0;
    CE=0;
    CLK1=0;
    DATA=0;

    POWER_UP=1;//stand by mode

    delay3ms();
    
    CS = 1;    //2401进入配置方式

    delay5us();//CS到DATA至少延迟5us Tcs2data    
    
    for(i=3;i<18;i++)
    {
        variable1=congfig_data[i];
        for(j=0;j<8;j++)
        {
            CLK1=0;
            DATA=(variable1>>7)&0x1;//配置先写入高位MSB
            delay500ns();//Ts
            CLK1=1;
            delay500ns();//时钟信号高电平保持至少500ns
            CLK1=0;//数据在CLK1上升沿写入nRF2401
            variable1=variable1<<1;
        }
    }
    CS=0;//CS置低使配置有效
}

void Transmit_data(unsigned char number)
{
    int i,j;
    unsigned char variable2;
    unsigned char transmit_data[6];
    transmit_data[0]=0xdd;
    transmit_data[1]=0xdd;
    transmit_data[2]=0xdd;
    transmit_data[3]=0xdd;//接收方通道硬件地址
    transmit_data[4]=number;
    transmit_data[5]=number;

    POWER_UP = 1;//stand by mode
    CS = 0;    
    CE = 0 ;    
    CLK1=0;
    DATA=0;

    someNOP();//Td
    
    CE=1;
    
    delay5us();//CE到DATA至少延迟5s
    
    for(i=0;i<5;i++)
    {
        variable2=transmit_data[i];
        for(j=0;j<8;j++)
        {
            CLK1=0;
            DATA=(variable2>>7)&0x1;
            delay500ns();
            CLK1=1;
            delay500ns();//时钟信号高电平至少为500ns
            CLK1=0;//数据在CLK1上升沿写入nrf2401
            variable2<<=1;
        }
    }
    CE=0;//CE置低使发送有效
}

void main()
{
    int temp;
    Init();//初始化
    LED1=0;

    nRF2401_powerup_config();
    Transmit_data(0xaa);
    LED2 = 0;

    while(1)
    {
        LED2=~LED2;
        temp=90000;
        while(temp--)
        {delay5us();
        }
    }
}
==================================================================
以下是接收端的程序
void nRF2401_powerup_config(void)
{
    int i,j;
    unsigned char congfig_data[18],variable1;
    congfig_data[0]=0x8e;
    congfig_data[1]=0x08;
    congfig_data[2]=0x1c;

    congfig_data[3]=0x08;//119:112
    congfig_data[4]=0x08;//112:104

    congfig_data[5]=0x00;//103:64,channel 2 address
    congfig_data[6]=0xd0;
    congfig_data[7]=0xdd;
    congfig_data[8]=0xdd;
    congfig_data[9]=0xdd;

    congfig_data[10]=0x00;//63:24,channel 1 address
    congfig_data[11]=0xdd;
    congfig_data[12]=0xdd;
    congfig_data[13]=0xdd;
    congfig_data[14]=0xdd;

    congfig_data[15]=0x83;//address width,CRC 16bits
    congfig_data[16]=0x6e;
    congfig_data[17]=0x05;
    
    POWER_UP=0;//power down mode
    CS=0;
    CE=0;
    CLK1=0;
    DATA=0;

    POWER_UP=1;//stand by mode

    delay3ms();
    
    CS = 1;    //2401进入配置方式

    delay5us();//CS到DATA至少延迟5us Tcs2data    
    
    for(i=3;i<18;i++)
    {
        variable1=congfig_data[i];
        for(j=0;j<8;j++)
        {
            CLK1=0;
            DATA=(variable1>>7)&0x1;//配置先写入高位MSB
            delay500ns();//Ts
            CLK1=1;
            delay500ns();//时钟信号高电平保持至少500ns
            CLK1=0;//数据在CLK1上升沿写入nRF2401
            variable1=variable1<<1;
        }
    }
    CS=0;//CS置低使配置有效
}
void Receive_data(void)
{

    POWER_UP = 1;
    CE = 0 ;
    CS = 0;    
    CLK1=0;
    someNOP();
    CE=1;
    delay195us();
    while(DR1==0)
    {
        LED2=1;
    }    
}
void main()
{
    int temp;
    Init();//初始化
    LED1=0;
    pd2cfgm();
    nRF2401_powerup_config();
    ioconfig();//改变DATA的输入输出属性
    Receive_data();
    LED2 = 0;
    while(1)
    {
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -