[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信

一.Si24Ri原理图

Si24R1芯片原理图如下:
右侧为晶振。
在这里插入图片描述
模块芯片与主控芯片连接引脚如下:
在这里插入图片描述
SI-EN:使能引脚。
SI-IRO:可屏蔽中断信号,低电平有效。
SPI1-NSS:片选信号。
SPI1-CLK:时钟信号。
SPI1-MOSI:主设备输出从设备输入。
SPI1-MISO:主设备输入从设备输出。

二.Si24R1芯片手册解读

在这里插入图片描述
信道取值范围1到126,如果两个人同时使用一个信道会导致干扰。
状态机转换图:
在这里插入图片描述
TX工作模式:
在这里插入图片描述
RX工作模式:
在这里插入图片描述
在这里插入图片描述
当芯片数据过多处理不过来时,FIFO中可以存储三个数据包起到存储缓冲作用,当满了时接收到的数据包被自动丢掉。所以最好协调发送接收的频率相等,或者发送稍微慢一些。
数据包处理协议:
在这里插入图片描述
在实际代码编写时在负载数据中加入自己的数据校验。
在这里插入图片描述

三.驱动函数讲解

定义两个地址:
在这里插入图片描述
定义两个缓冲区:
在这里插入图片描述
在.h文件中extern两个缓冲区:
在这里插入图片描述
标记位:
在这里插入图片描述
写寄存器:
在这里插入图片描述
读寄存器:
在这里插入图片描述
写多个字节:
在这里插入图片描述
在这里插入图片描述
自检判断校验是否成功:
在这里插入图片描述
在这里插入图片描述

五.移植2.4g通讯(飞控部分)

文件夹创建.c.h文件,将代码复制粘贴进文件:
在这里插入图片描述
配置为全双工模式,不能超过18M,设置为4分频:
在这里插入图片描述
观察配置引脚是否与原理图一致:
在这里插入图片描述
配置片选信号NSS低电平有效,所以PA4引脚设置为高电平,使用时拉低电平:
在这里插入图片描述
配置使能信号,默认使能:
在这里插入图片描述
配置IRQ中断输入引脚,低电平有效默认上拉:
在这里插入图片描述
在这里插入图片描述
.h文件2.4g通道设置:
在这里插入图片描述
将该函数Driver_SPI_SwapByte定义:
在这里插入图片描述
在应用层编写Start函数,在中间自检:
在这里插入图片描述
App_Task中编写通信任务:
与飞控任务优先级保持一致,与飞控任务重要性差不多。
在这里插入图片描述
测试通讯任务:
因为通讯任务和飞控任务优先级相同,所以可能会导致硬件出问题,在该处开头延时1000ms。使用Inf_Si24R1_TxPacket函数接受数据包,将数据保存在RX_BUFF中,返回值0接收到数据,1未接收到数据。
在这里插入图片描述
在这里插入图片描述

六.移植2.4g通讯(遥控部分)

根据原理图配置SPI接口:
在这里插入图片描述
在这里插入图片描述
在keil中配置.h文件:
在这里插入图片描述
管理目录结构:
在这里插入图片描述
删除多余功能后,编写通讯任务:
将数据填入TX_BUFF并根据返回值判读发射成功与否。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值