STM32: 在STM32F030F4开发板上实现NRF24L01P无线模块间通信

这次自己照着ChibiOS/RT实时系统驱动的写法,重新整理了一下NRF24模块的相关代码,并且将User LED, User Key及1602 LCD模块都用上了:

- User LED:用来显示当前系统是否在运行,每秒闪烁一下(1ms on, 999ms off)。同时可以指示NRF24模块是否正在交换数据。

-User Key:用来选择当前NRF24模块的工作模式。

-I2C1接口:连接1602 LCD模块,用于显示系统的相关信息。

-UART1 接口:用于显示相关的log信息。

  • 相关的硬件信息

关于STM32F030F4-DEV V1.0开发板的相关信息,请参考:

STM32: 含nRF24L01无线模块的STM32F030F4P6开发板

同时,我们还需要一块基于I2C通信的1602 LCD液晶显示模块,模块通信所使用的I2C地址为0x3F

STM32: 通过I2C总线驱动1602 LCD显示模块

LCD模块用于显示系统信息:

- 系统开始运行时,提示用户当前nRF24L01模块的工作模式,用户可以通过开发板上的User Key切换模式:选择是发送模式还是接收模式,用户有3秒钟的时间选择,默认是处于接收模式。

-工作模式选定之后,会显示当前NRF24模块的工作模式,停留2秒钟

-三屏轮番显示(每屏显示持续2秒钟):

1. 显示当前NRF24L01模块的工作模式及系统时间(系统时间由systick计算得来)

2. 显示当前接收了多少字节及接收时出现多少次异常

3. 显示当前发送了多少字节及发送时出现多少次异常

关于NRF24L01P模块:

-通信接口: SPI (CE, CSN, SCK, MOSI, MISO, IRQ)

-中心频段:2.4~2.525G

-最大功率:1mW

-供电电压:3.3V

-空中速率:250K, 1M, 2M

-发射电流:13mA

-参考距离:120m

  • 代码及实现

相关的代码可以从这里下载:

https://github.com/brobwind/chibios_stm32f030f4_dev_v1
  • 相关的参考文档
  1. https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P
  2. https://www.nordicsemi.com/eng/nordic/download_resource/8765/2/19687532
  3. https://www.nordicsemi.com/eng/nordic/download_resource/10638/11/55175509
  4. http://www.playembedded.org/blog/en/2015/07/16/a-radio-frequency-transceiver-library-nrf24l01-and-chibiosrt/

发表评论

电子邮件地址不会被公开。 必填项已用*标注