stm32f103单片机2.4G双向通信100Hz

这篇博客介绍了作者在开发无人机过程中,如何使用STM32F103C8T6单片机和G01-S(Si24R1)通信芯片实现100Hz频率的双向通信。由于找不到现成的代码,作者依靠自学的STM32知识,修改官方代码以满足需求。通信芯片G01-S作为nRF24L01P的替代品,具备成本优势且通信距离达到120米。博客详细展示了在drv_RF24L01.c和main.c中的关键代码修改。
摘要由CSDN通过智能技术生成

发布原因 

         在我绞尽脑汁的搜索了n多遍的各种搜索引擎后,发现没有现成的双向快速通信代码可以抄,又因为才开始学stm32,很多东西都是在网上抄下来,改改就用,或者去官方资料里找示例代码改改然后自己用,最近是在弄无人机,想弄一个可以回传各个电机情况的双向通信,但实在是找不到又现成的代码,只好凭借自己刚学了2个星期的stm32知识来修改官方的代码,来实现我的功能,也顺便分享一下。

通信芯片的选用

        单片机信号stm32f103c8t6,通信芯片为G01-S(国产芯片,Si24R1射频模块),此芯片说是可以替代nRF24L01P,重点是便宜,我所用的通信距离只有120M。

代码部分

         所有代码基本是官方提供的,我只在drv_RF24L01.c中修改了发送的步骤,接收的时的等待时间,其他的就只修改了脚针接口,自行修改即可,我只放出了我修改过的部分代码。

说明

        修改main.c中的delay_ms的时间可以改变通信频率,现在是100Hz左右。

drv_RF24L01.c

/**
  * @brief :NRF24L01发送一次数据
  * @param :
  *			@txbuf:待发送数据首地址
  *			@Length:发送数据长度
  * @note  :无
  * @retval:
  *			MAX_TX:达到最大重发次数
  *			TX_OK:发送完成
  *			0xFF:其他原因
  */ 
uint8_t NRF24L01_TxPacket( uint8_t *txbuf, uint8_t Length 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值