注:NRF24L01_Check检测到连接已经成功了 下面附上我的main函数 int main(void){ u8 temp_buf[33]={...
调试的时候,在NRF24L01_RxPacket(u8 *rxbuf)函数里面STATUS读出来的值是0x2E。我在 NRF24L01_Check(void)函数里面读取STATUS值,STATUS=0x0E。 总结:在发送端的时候NRF24L01_TX_Mode()函数必须放在while(NRF24L01_Check())之后。如果放在检查函数之前就会导致发送失败。整了3晚就整出这一句话,,,很无语。 PS:如果...
();//针对NRF的特点修改SPI的设置 NRF24L01_CE=0; //使能24L01 NRF24L01_CSN=1; //SPI片选取消 } //检测24L01是否存在 //返回值:0,成功;1,失败 u8 NRF24L01_Check(void) { u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5}; u8 i; SPI1_SetSpeed(SPI_BaudRatePrescaler_8); //spi速度为10.5Mhz(24...
3、发送端和接收端之间通信是有应答过程的所以接收端不在线的情况下会发送失败,如果check函数检测到了模块就不是单片机与模块之间通信的问题了,如果check函数。完整工程下载:https://download.csdn.net/download/qq_43581670/87148911关键词: STM32调试 STM32模块 STM32 nrf24l01模块 ...
1)写Tx 节点的地址 TX_ADDR 2)写Rx 节点的地址(主要是为了使能Auto Ack) RX_ADDR_P0 3)使能...
void NRF24L01_check( void ) { uint8_t i; uint8_t error = 0; uint8_t buf[5]={ 0XA5, 0XA5, 0XA5, 0XA5, 0XA5 }; uint8_t read_buf[ 5 ] = { 0 }; while( 1 ) { NRF24L01_Write_Buf( TX_ADDR, buf, 5 ); //写入5个字节的地址 ...
printf("Errorcheck code.\n\r");errorFlag=1;} else { // 根据对方分机的编号,点亮对应的LED i...
我现在在调试NRF24L01无线的通信,我目前只调试了发送的程序,一切端口都配置好了以后,但是现在有一个问题,就是NRF24L01_Check()函数向NRF24L01的寄存器写入,但是却写不进去,不知道是什么原因导致的,读出来的值都是0x00.不知道有没有人遇到和我同样的问题。 u8 NRF24L01_Check(void) { u8 buf[5]={0XA5,0XA5,0X...
//使能24L01NRF24L01_CSN=1;//SPI片选取消}//检测24L01是否存在//返回值:0,成功;1,失败u8NRF24L01_Check(void){ u8 buf[5]={0XA5,0XA5,0XA5,0XA5,0XA5}; u8 i;SPI2_SetSpeed(SPI_BaudRatePrescaler_4);//spi速度为9Mhz(24L01的最大SPI时钟为10Mhz)NRF24L01_Write_Buf(NRF_WRITE_REG+TX_ADDR,...