|
楼主 |
发表于 2012-9-26 20:58:59
|
显示全部楼层
本帖最后由 自学STM32 于 2012-9-26 21:55 编辑
这两天用STM32F103RBT6调试NRF24L01,发现个奇怪问题
把24L01初始化
void NRF24L01_Init(void)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_6);
//NRF24L01_Write_Buf(WRITE_REG + TX_ADDR, (u8*)TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址
NRF24L01_Write_Buf(WRITE_REG + RX_ADDR_P0, (u8*)RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址
NRF24L01_Write_Reg(WRITE_REG + EN_AA, 0x00); // 频道0自动 ACK应答允许
NRF24L01_Write_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21
NRF24L01_Write_Reg(WRITE_REG + SETUP_RETR,0x00);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:16次
NRF24L01_Write_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致
NRF24L01_Write_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为8字节
NRF24L01_Write_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB
//NRF24L01_Write_Reg(FLUSH_TX,0xff);
NRF24L01_Write_Buf(WRITE_REG + TX_ADDR, (u8*)TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址
}
这样的话发射机打开电源,接收机可以成功收到如果是这样的话就需要再按下发射机的复位开关才可以收到
void NRF24L01_Init(void)
{
GPIO_ResetBits(GPIOC, GPIO_Pin_6);
主要是这句,放到最后写入就不需要按复位开关 NRF24L01_Write_Buf(WRITE_REG + TX_ADDR, (u8*)TX_ADDRESS, TX_ADR_WIDTH); // 写本地地址
NRF24L01_Write_Buf(WRITE_REG + RX_ADDR_P0, (u8*)RX_ADDRESS, RX_ADR_WIDTH); // 写接收端地址
NRF24L01_Write_Reg(WRITE_REG + EN_AA, 0x00); // 频道0自动 ACK应答允许
NRF24L01_Write_Reg(WRITE_REG + EN_RXADDR, 0x01); // 允许接收地址只有频道0,如果需要多频道可以参考Page21
NRF24L01_Write_Reg(WRITE_REG + SETUP_RETR,0x00);//设置自动重发间隔时间:500us + 86us;最大自动重发次数:16次
NRF24L01_Write_Reg(WRITE_REG + RF_CH, 0); // 设置信道工作为2.4GHZ,收发必须一致
NRF24L01_Write_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); //设置接收数据长度,本次设置为8字节
NRF24L01_Write_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB
}
前天去逛二手市场发现一个成色不错的电烤箱,准备用来烘干感光油墨,将来还打算改成回流焊箱,不知道1500W的功率够不够我的
我的电脑有问题发表了图片 |
|