【教程】使用STM32F4进行E22-400T22S编程通信教程

描述

通过本文带大家零基础使用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/(当然这是国外的网站需要VPN走外网),下载好之后,双击运行,默认安装即可。

1.2 通过STM32CubeMX生产代码文件

打开STM32CubeMX软件,点击如图1.1的“序号1”新建一个项目,然后出现图1.2这个界面,现在“序号1”输入框中输入STM32F407VET6,然后选中“序号2”的芯片,最后点击“序号3”开始新工程的搭建。

STM32F4

 图1.1

STM32F4

 图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)”。

STM32F4

 图1.3

STM32F4

 图1.4

 

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

STM32F4

 图1.5

 

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

STM32F4

 图1.6

 

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

STM32F4

 图1.7

 

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

STM32F4

 图1.8

 

接下来配置USART串口,操作如图1.9所示,选择“序号1”,点击“序号2”,选择“USART1”,然后点击“序号3”的菜单下拉框,选择“Asynchronous”,然后点击“序号4”弹出选择框,找到“序号5”,把波特率改为“9600 Bit/s”,这样串口通信就配置成功。为了实现USART串口中断接收,操作如图1.10所示,选择“序号1”,然后勾选“序号4”,使能串口中断。

STM32F4

 图1.9

STM32F4

 图1.10

 

现在来配置系统时钟树,操作如图1.11所示,点击“序号1”的“Clock Configuration”,然后在“序号2”的框中改为8,我们选择的是8MHz的晶振,这里按照自己单片机的实际晶振可做修改,然后点击“序号3”,再点击“序号4”,最后把“序号5”的框中改为72,这里配置的系统时钟频率是72MHz,也可以自己选择配置成自己想要且合理的系统时钟频率。

STM32F4

 图1.11

 

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

STM32F4

 图1.12

STM32F4

 图1.13

二、单向发送代码

2.1 代码编写

双击打开keil工程,操作如图2.1所示,按照如下图2.1所示路径,点击“序号1”keil的运行程序,最后打开的页面应该是如图2.2所示。

STM32F4

 图2.1

STM32F4

 图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);

STM32F4

 图2.3

STM32F4

 图2.4

STM32F4

 图2.5

2.2 程序烧录下载

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

STM32F4

 图2.6STM32F4 图2.7

三、实操

3.1 实物准备

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

STM32F4

 图3.1

STM32F4

 图3.2

3.2 连线

E22模块与单片机连线,连线是根据自己配置的引脚进行连线,本文提供的连线如表3.1所示,连接好之后给单片机上电。

E22-400T22S

 

 

STM32F407VET6单片机

 

 

M0

 

 

PA1

 

 

M1

 

 

PD14

 

 

RXD

 

 

TX

 

 

TXD

 

 

RX

 

 

AUX

 

 

PC1

 

 

VCC

 

 

5V或者3.3V

 

 

GND

 

 

GND

 

 

另外一个E22与串口工具的连线也类似,连接好之后,给串口助手插入电脑,打开串口助手,打开对应COM口,接收的数据信息如图3.3所示。到此E22模块的单向传输功能已实现。

STM32F4

 图3.3

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分