# hal库-STM32--NRF24L01 **Repository Path**: linsen06/hal-library-STM32--NRF24L01 ## Basic Information - **Project Name**: hal库-STM32--NRF24L01 - **Description**: Using STM32 chip and CUBEMAX, using hardware SPI protocol to use NRF24L01 chip for wireless transmission - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2022-07-03 - **Last Updated**: 2025-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # hal库-STM32--NRF24L01 #### 介绍 Using STM32 chip and CUBEMAX, using hardware SPI protocol to use NRF24L01 chip for wireless transmission 适配所有的stm32芯片 #### 软件架构 使用cubemax来配置硬件spi协议 使用串口助手进行打印 #### 使用说明 配置spi和相关的引脚(见笔记) 在生成的keil文件中加入NRF24L01.h NRF24L01.c 文件(在上面文件夹NRF),要在魔术棒中加入路径 在主函数中需要加入检测函数用于检测是否连接了NRF24L01 ``` while(NRF24L01_Check()) { printf("连接异常\n");//打印给串口(不会用在笔记中有) HAL_Delay(1000); } ``` 1.发射端的测试代码就是先定义一个数组其中包含着字符串,把这些字符串进行发送: ``` NRF24L01_TX_Mode();//设置位发送模式 while (1) { uint8_t tem_buf[32]="stm32_nrf24l01_test"; if(NRF24L01_TxPacket(tem_buf)==TX_OK) { printf("发送成功:%s\n",tem_buf); } else { printf("发送失败\n"); } } ``` 配置完成后进行烧录发现会一直显示发送失败,这不是配置的问题,因为我们还没有接收端,没有进行准确的发送(准确说是接收端没有给予回复) 2.发射端的测试代码需要定义一个空的字符数组来接收: ``` uint8_t tem_buf[32]; while (1) { if(NRF24L01_RxPacket(tem_buf)==0) { tem_buf[31]=0;//加入字符串结束符。 } HAL_Delay(10); } } ``` 代码烧录如另外一台单片机,并上电,就可以看到串口打印出来的就是发送成功。 #### 版本迭代 0.0 22/7/3 #### 参与贡献 lin森