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

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

基于STM32F103C8T6核心板的E01系列无线模块(nRF24L01P方案)和E01C系列无线模块(SI24R1芯片方案)的EBYTE官网例程移植。我们在《基于STM32核心板E01和E01C无线模块驱动移植案例教程1》一文中,我们介绍了STM32F103C8T6核心板无线模块驱动移植案例简介、硬件环境、软件环境、基于STM32方案无线射频模块简介以及STM32开发环境配置实验步骤,本文我们主要介绍基于STM32核心板无线模块的驱动移植步骤教程

1、代码移植

①、完成《基于STM32核心板E01和E01C无线模块驱动移植案例教程1》一文中的案例步骤后,已经打开了创建的工程,先进行首次编译,查看是否有编译错误。

正常的编译结果应该是0 Error(s), 0 Warning(s)。

20  STM32方案模块驱动移植案

②、实现串口重定向,修改usart。c和usart。h文件

usart.c中修改两个位置。

一个是在/* USER CODE BEGIN 0 */和/* USER CODE END 0 */之间新添加如下代码:

21  STM32方案模块驱动移植案

另一个是修改void MX_USART1_UART_Init(void)函数,在该函数中的  

/* USER CODE BEGIN USART1_Init 2 */和  /* USER CODE END USART1_Init 2 */之间加入代码:

22  STM32方案模块驱动移植案

Usart.h中,需要包含stdio.h,在/* USER CODE BEGIN Includes */和/* USER CODE END Includes */之间加入代码:

23  STM32方案模块驱动移植案

Usart.h中,在/* USER CODE BEGIN Private defines */和/* USER CODE END Private defines */之间加入代码:

24  STM32方案模块驱动移植案

启用MicroLIB

25  STM32方案模块驱动移植案

③、在创建的工程路径下,新建一个名为MyFiles的文件夹,并将例程中的如下文件均复制到MyFiles文件夹中。

26  STM32方案模块驱动移植案
27  STM32方案模块驱动移植案

④、添加MyFiles的文件夹路径到工程

28  STM32方案模块驱动移植案

⑤、在工程中新建文件夹,并将复制的文件添加到工程之中

29  STM32方案模块驱动移植案

⑥、修改添加到MyFiles文件夹下的所有.c和.h文件

由于涉及到的修改较多,不做一一介绍,直接给出修改后的该文件夹下的所有文件附件。附件见文末的附件MyFiles。

⑦、修改main.c文件

/* USER CODE BEGIN Includes */和/* USER CODE END Includes */之间添加为app。h 和bsp。h的包含:

30  STM32方案模块驱动移植案
31   STM32方案模块驱动移植案

添加USART1的接收和发送中断回调函数,

/* USER CODE BEGIN 4 */和/* USER CODE END 4 */加入代码:

32  STM32方案模块驱动移植案

⑧、修改stm32f1xx_it.c文件

添加对app.h的包含,在/* USER CODE BEGIN Includes */和/* USER CODE END Includes */之间加入代码:

33  STM32方案模块驱动移植案

修改void SysTick_Handler(void)函数,

 /* USER CODE BEGIN SysTick_IRQn 1 */和/* USER CODE END SysTick_IRQn 1 */之间加入:

34  STM32方案模块驱动移植案

至此,程序移植已经全部完成,再次重新编译。如果出现warning:  #1-D: last line of file ends without a newline这个警告,请在该文件最后一行添加新行。

2、通信验证

①、程序下载

ST-LINK的下载接口与STM32核心板的下载接口连接,对应接线如下:

35  STM32方案模块驱动移植案

Debug配置

36  STM32方案模块驱动移植案

配置完成后,点击LOAD进行下载

37  STM32方案模块驱动移植案

下载成功后,会出现如下提示:

38  STM32方案模块驱动移植案

②、硬件连接

建议在接线过程中断电操作。STM32核心板的供电使用自带的USB接口供电。

STM32核心板与E01-ML01D无线模块连接

39  STM32方案模块驱动移植案

STM32核心板与USB转TTL工具连接

40  STM32方案模块驱动移植案

③、通信测试

STM32核心板通过USB接口供电,USB转TTL转接板模块工具连接上电脑上的串口调试助手。串口调试助手配置如下:

41 STM32方案模块驱动移植案

STM32核心板复位,它首先会检查与E01-ML01D无线模块的连接。如果连接成功,则会打印Link successful。如果链接失败,则会打印Link Fail Please check and reset module。最大连接次数为6次,每次连接会打印当前连接次数。

42 STM32方案模块驱动移植案

数据发送和接收,例程使用了nRF24L01P的ACK功能,所以在发送成功则会打印Send TX_DS,发送失败会打印Send MAX_RT。

43 STM32方案模块驱动移植案

3、STM32核心板E01-ML01D无线模块驱动移植方案

以上实验中,实现了基于STM32F103C8T6核心板的E01-ML01D的驱动移植以及通信验证,其中的E01-ML01D可以替换为任意型号的nRF24L01P方案或者Si24R1方案的无线射频模块。也可以稍加修改,适用于其他STM32系列的MCU。

以上就是全部的《基于STM32的E01和E01C驱动移植教程案例》。



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


相关阅读:

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

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

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

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


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