当前位置: 首页 >应用方案 >技术应用 >

基于STM32核心板的E01和E01C无线模块驱动移植案例教程1

一、实验简介

基于STM32F103C8T6核心板的E01系列无线模块(nRF24L01P方案)和E01C系列无线模块SI24R1芯片方案的EBYTE官网例程移植。EBYTE官网例程是基于STM8L151编写,本次实验的目的是将该例程移植到常见的MCU型号STM32F103C8T6,实现基本的无线通信。电脑端的串口调试助手操作和显示数据收发。

二、硬件环境

2个E01系列的相同型号的无线模块(或者2个E01C系列的相同型号的无线模块);

2个USB转TTL转接板模块(CH340版本),例如E15-USB-T3型号转接板模块;

2个STM32F103C8T6最小系统板;

1个STM32烧录器(DAP-LINK或者ST-LINK等等);

1台电脑;

杜邦线若干;

三、软件环境

STM32的开发软件(MDK_ARM,IAR或者STM32CubeIDE等等);

STM32CubeMX;

XCOM V2。6 串口调试助手;

CH340驱动;

四、STM32方案无线模块简介

视选择型号,参考厂家提供的模块手册。因为E01和E01C无线射频模块分别使用的nRF24L01P芯片方案SI24R1射频方案,但是寄存器基本一致,操作方式也大致相同,所以驱动程序可以通用。

本次实验使用E01-ML01D无线模块,无线模块基于nRF24L01P方案,采用3.3V供电,最大发射功率0dBm,参考通信距100m。无线模块的寄存器和详细操作可以直接参考nRF24L01P的芯片手册。E01-ML01D无线模块示意及引脚定义如下图。

1  STM32方案模块驱动移植案
2  STM32方案模块驱动移植案

五、实验步骤

本次实验使用的STM32开发环境MDK_ARM和STM32CubeMX,无线模块烧录器使用的是ST-LINK。涉及到的软件获取和安装方法这里不做介绍,建议参考网上的教程。注意,如果使用的大功率E01系列无线模块或者E01C系列无线模块,例如发射功率大于等于20dBm,需要考虑供电是否达到要求,本次使用的是E01-ML01D系列无线模块的发射电流在13mA,一般的STM32F103C8T6核心板都可以满足要求。

3  STM32方案模块驱动移植案

1、准备EBYTE官网例程

在亿佰特官网搜索E01-ML01D型号无线模块,在相关下载一栏,找到通信例程并下载解压。

4  STM32方案模块驱动移植案

2、新建STM32工程

①、打开STM32CubeMX,新建STM32F103C8T6工程,进入MCU配置

5  STM32方案模块驱动移植案
6  STM32方案模块驱动移植案

②、配置System Core选项中的SYS和RCC

Pinout & Configuration 一栏下展开System Core,分别配置SYS和RCC:

7  STM32方案模块驱动移植案
8  STM32方案模块驱动移植案

③、Clock Configuration时钟树配置

时钟配置完成后,回到Pinout & Configuration 一栏配置其他MCU外设。

9  STM32方案模块驱动移植案

④、MCU的串口配置

选择USART1,配置USART1参数:

10  STM32方案模块驱动移植案

开启USART1全局中断:

11  STM32方案模块驱动移植案

⑤、配置MCU的SPI

选择SPI1,配置为全双工主机模式,射频芯片的SPI接口速率最大支持10M,所以MCU的SPI的速率要小于等于10M,CPOL选择Low,CPHA选择1Edge,NSS引脚控制选择Software。不启用SPI1的全局中断,所以NVIC Setting不设置。

12  STM32方案模块驱动移植案

⑥、GPIO配置

直接点击MCU对应引脚,将其配置。将PA4作为SPI1的片选引脚,PB0作为E01-ML01D无线模块的CE引脚PB1作为E01-ML01D无线模块的IRQ引脚。所以需要把PA4和 PB0 配置为GPIO_Output,PB1配置为GPIO_Input。配置引脚后,在GPIO选项中,会显示配置的这三个引脚配置详情。然后在GPIO选项中,需要配置GPIO引脚的其他参数。

这一步完成后,我们要使用的MCU外设已经基本完成配置,接下来是工程的设置和保存。

13  STM32方案模块驱动移植案
14  STM32方案模块驱动移植案
15  STM32方案模块驱动移植案
16  STM32方案模块驱动移植案

⑦、设置工程以及保存路径

配置工程及代码生成配置,最后点击GENERATE CODE,等待进度条完成后会出现一个弹窗,选择Open Project 直接打开工程。接下来就是在MDK_ARM中的操作

17  STM32方案模块驱动移植案
18  STM32方案模块驱动移植案
19  STM32方案模块驱动移植案


基于STM32F103C8T6核心板的无线模块代码移植教程方案请阅读下文《基于STM32方案的E01和E01C无线模块驱动移植案例教程2》。


今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多无线射频模块和无线通信技术资料,感兴趣的小伙伴可以登录我们的亿佰特官网进行了解,也可以直接拨打400电话咨询技术专员!


相关阅读:

1、STM8L系列单片机在无线通信模块产品中的应用

2、零基础搭建基于STM32单片机的M系列LoRa模块透传教程一

3、基于STM32F103+MAX4003的射频功率表制作

4、一文了解STM32的工作原理及各部件作用


点击拨打: 亿佰特官网 4000-330-990