通过本文带大家零基础使用STM32F407VET6单片机进行E22-400T22S模块编程并进行简单的通信,当然如果学会了,也可以举一反三应用于E22、E220、E32所有模块上。
一
STM32环境零基础搭建
本次实验将会使用到的软件是Keil和STM32CubeMX,没有这两个软件没有请在网上自行下载。本章节零基础手把手教会你搭建最快捷、最简单的STM32代码运行环境。
1.1 keil的芯片固件包下载与安装
本文使用到的MCU是STM32F407VET6,对于Keil来说需要提前安装好相应的固件包,固件包下载地址是https://www.keil.arm.com/packs/stm32f4xx_dfp-keil/,下载好之后,双击运行,默认安装即可。
1.2 通过STM32CubeMX生产代码文件
打开STM32CubeMX软件,点击如图1.1的“序号1”新建一个项目,然后出现图1.2这个界面,先在“序号1”输入框中输入STM32F407VET6,然后选中“序号2”的芯片,最后点击“序号3”开始新工程的搭建。

图1.1
图1.2
进去芯片配置界面,首先配置SWD烧录口,以便于程序的烧入和Debug调试,如图1.3所示,点击“System Core”选项卡里面的“序号1”SYS,然后找到“序号2”的选择框,我们选择“Serial Wire”,这样程序烧录引脚就配置完成。
接着见图1.4所示,在“System Core”选项卡里面找到“序号1”RCC,选择单片机的时钟源,点击“序号2”的下拉菜单,选择“Crystall/Ceramic Resonator”晶振,这里只配了高速时钟,如果需要低速时钟的话,可以自己配置下面的选项卡“High Speed Clock(LSE)”。

图1.3

图1.4
配置LED的GPIO,该引脚用于发送接收时候状态的指示。本文使用到的单片机控制LED 的GPIO口是PC13,这里选择你自己单片机控制LED的IO口引脚,本文就以PC13口作为示例。如图1.5所示,首先找到并点击“序号1”的PC13芯片引脚,选择“GPIO_Output”,接下来点击“序号3”就会弹出下面的选择框,如“序号4”所示,可以参考“序号4”的配置,这样LED的GPIO口就配置完成。

图1.5
配置AUX的GPIO,该引脚是反馈E22模块的状态,AUX为高电平说明正常,本文使用的的单片机IO口为PC1,操作如图1.6所示,首先点击“序号1”,然后选择“序号2”模式设为输入模式,然后点击“序号3”,紧接着选择“序号4”,最后点击“序号5”,最后按照“序号6”的内容进行选择。

图1.6
配置M0的GPIO,该引脚是接E22模块的M0引脚,用于控制E22的模式,本文使用的的单片机IO口为PA1,操作如图1.7所示,首先点击“序号1”,然后选择“序号2”模式设为输出模式,然后点击“序号3”,紧接着选择“序号4”,最后点击“序号5”,最后按照“序号6”的内容进行选择。

图1.7
配置M1的GPIO,该引脚是接E22模块的M1引脚,用于控制E22的模式,本文使用的的单片机IO口为PD14,操作如图1.8所示,首先点击“序号1”,然后选择“序号2”模式设为输出模式,然后点击“序号3”,紧接着选择“序号4”,最后点击“序号5”,最后按照“序号6”的内容进行选择。

图1.8
接下来配置USART串口,操作如图1.9所示,选择“序号1”,点击“序号2”,选择“USART1”,然后点击“序号3”的菜单下拉框,选择“Asynchronous”,然后点击“序号4”弹出选择框,找到“序号5”,把波特率改为“9600 Bit/s”,这样串口通信就配置成功。
为了实现USART串口中断接收,操作如图1.10所示,选择“序号1”,然后勾选“序号4”,使能串口中断。
图1.9
图1.10
现在来配置系统时钟树,操作如图1.11所示,点击“序号1”的“Clock Configuration”,然后在“序号2”的框中改为8,我们选择的是8MHz的晶振,这里按照自己单片机的实际晶振可做修改,然后点击“序号3”,再点击“序号4”,最后把“序号5”的框中改为72,这里配置的系统时钟频率是72MHz,也可以自己选择配置成自己想要且合理的系统时钟频率。

图1.11
最后来到“Project Manager”,操作如图1.12所示,先点击“序号1”,然后在“序号2”的框中为自己的工程文件取名字,笔者这里取名为“STM_T”,再在“序号3”中选择自己工程文件的存储位置,最后在选择框“序号4”中选择“MDK-ARM”。
最后一步,操作如图1.13所示,我们选择“序号1”,然后点击“序号2”,这里选项的意思是该工程文件只生成必要的函数库文件,再勾选上“序号3”,最后选择点击“序号4”完成工程代码的生成。

图1.12

图1.13
二
单向发送代码
2.1 代码编写
双击打开keil工程,操作如图2.1所示,按照如下图2.1所示路径,点击“序号1”keil的运行程序,最后打开的页面应该是如图2.2所示。

图2.1

图2.2
实现发送信息的功能。操作如图2.3所示,点击“序号1”的mian.c文件,然后在“序号2”框出来位置,写入“序号3”的代码,char msg[]= "Hello,Ebyte!\r\n"; ;然后进行图2.4的操作,点击“序号1”的mian.c文件,然后在“序号2”框出来位置,写入“序号3”的代码,#include "string.h";最后进行图2.5的操作,点击“序号1”的mian.c文件,然后在“序号2”框出来位置,写入“序号3”的代码:
HAL_UART_Transmit(&huart1,(uint8_t*)msg,strlen(msg),1000);
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
HAL_Delay(1000);

图2.3

图2.4

图2.5
2.2 程序烧录下载
准备好单片机和烧录器,本文使用的烧录器是STlink,把STlink与单片机需要烧录的引脚连接好,操作如图2.5所示,点击“序号1”的魔术棒,然后点击“序号2”,在“序号3”左边的选择框选ST-Link Debugger,然后选“Settings”,接着跳出一个界面,看“序号4”查询是否检测到芯片,然后对比“序号5”进行修改,点击“序号6”确定。
按照图2.7进行程序的下载,先点击“序号1”进行编译,再点击“序号2”进行程序的下载。

图2.6

图2.7
三
实操
3.1 实物准备
准备好两个E22模块,一个单片机,一个串口工具,若干杜邦线,本文实物准备如图3.1所示。通过串口工具打开E22相应的上位机,上位机在官网下载,通过上位机先把模块都复位,如图3.2所示。

图3.1

图3.2
3.2 连线
E22模块与单片机连线,连线是根据自己配置的引脚进行连线,本文提供的连线如表3.1所示,连接好之后给单片机上电。
表3.1
另外一个E22与串口工具的连线也类似,连接好之后,给串口助手插入电脑,打开串口助手,打开对应COM口,接收的数据信息如图3.3所示。至此,E22模块的单向传输功能已实现。
图3.3
-
单片机
+关注
关注
6068文章
45032浏览量
651964 -
通信
+关注
关注
18文章
6211浏览量
137998 -
STM32
+关注
关注
2295文章
11034浏览量
365912
发布评论请先 登录
评论