摘要:本文适用于零基础,手把手教你搭建基于STM32单片机控制亿佰特E22-M系列、E220-M系列和E32-M系列模块,旨在降低M系列模块开发难度,帮助大家更快上手M系列的模组。
本文适用于零基础,手把手教你搭建基于STM32单片机控制亿佰特E22-M系列、E220-M系列和E32-M系列模块,旨在降低M系列模块开发难度,帮助大家更快上手M系列的模组。
本次教程分为“上篇”和“下篇”,上篇为CubeMX代码文件的生成,下篇为Keil代码的移植。
本文使用的单片机型号为STM32F407VET6,打开CubeMX软件,如果没有这个软件请到官网进行下载,官网链接:https://www.st.com/stm32cubemx,进入CubeMX界面之后,点击“序号1”新建代码工程。
进入之后,在“序号1”的搜索框里面输入自己的STM单片机型号,笔者这里使用的是STM32F407VET6单片机,所以输入“STM32F407VET6”,然后选中“序号2”的内容,最后点击“序号3”,开始新工程的搭建。
进去芯片配置界面,首先配置SWD烧录口,以便于程序的烧入和Debug调试,点击“System Core”选项卡里面的“序号1”SYS,然后找到“序号2”的选择框,我们选择“Serial Wire”,这样程序烧录引脚就配置好了。
还是在“System Core”选项卡里面找到“序号1”RCC,选择单片机的时钟源,点击“序号2”的下拉菜单,选择“Crystall/Ceramic Resonator”晶振,这里只配了高速时钟,如果需要低速时钟的话,可以自己配置下面的选项卡“High Speed Clock(LSE)”。
接下来配置LED,用于发送接收时候状态的指示,可以选择不配置。本文使用到的单片机控制LED的GPIO口是PC13,这里选择你自己的单片机控制LED的IO口引脚就行,本文就以PC13口作为示例。
首先找到并点击“序号1”的PC13芯片引脚,选择“GPIO_Output”,接下来点击“序号3”就会弹出下面的选择框,如“序号4”所示,可以参考“序号4”的配置,这样LED的GPIO口就配置好了。
配置DIO1引脚,这是亿佰特M系类模块特有的可配置通用IO口(详见SX1262手册),不同单片机引脚有些不同,主要是看单片机这个引脚有无“GPIO_EXTI3”,本文是以PA3作为示例,首先点击“序号1”,然后选择“GPIO_EXTI3”,继续点击“序号3”,然后按照“序号4”进行配置。
按照上文配置DIO引脚一样配置SPI_CS片选引脚。
按照上文配置DIO引脚同样配置RESET引脚。
按照上文配置DIO引脚同样配置BUSY引脚。
按照上文配置DIO引脚同样配置TXEN引脚。
按照上文配置DIO引脚同样配置RXEN引脚。
引脚已经配置完毕,现在就在这个界面选择“序号1”NVIC,这里开启EXTI中断使能,勾选上“序号2”,使能其功能。
接下来配置SPI通信,选择“序号1”的Connectivity,点击“序号2”的SPI1,然后点击“序号3”的菜单下拉框,选择“Full-Duplex Master”,继续点击“序号4”出现下面的选项框,找到“序号5”,把这个“Prescaler”改成16。这样SPI通信也配置好了。
接下里配置USART串口,还是选择“序号1”,点击序号“2”,选择“USART1”,然后点击“序号3”的菜单下拉框,选择“Asynchronous”,接着点击“序号4”弹出选择框,找到“序号5”,把波特率改为“9600 Bit/s”,配置好串口通信。
为了实现USART串口中断接收,选择“序号1”,再点击“序号2”的USART1,选择“序号3”的“NVIC Settings”,然后勾选“序号4”,使能串口中断。
现在来配置系统时钟树,点击序号1“Clock Configuration”,然后在“序号2”的框中改为8,我们选择的是8MHz的晶振,这里按照自己单片机的实际晶振可做修改,然后点击“序号3”,再点击“序号4”,最后把“序号5”的框中改为72,这里配置的系统时钟频率是72MHz,也可以自己选择配置成自己想要且合理的系统时钟频率。
最后来到“Project Manager”,先点击“序号1”,然后在“序号2”的框中为自己的工程文件取名字,笔者这里取名为“STM_M”,再在“序号3”中选择自己工程文件的存储位置,最后在选择框“序号4”中选择“MDK-ARM”。
最后一步,我们选择“序号1”,然后点击“序号2”,这里选项的意思是该工程文件只生成必要的函数库文件,再勾选上“序号3”,最后选择点击“序号4”完成工程代码的生成。
亿佰特E22/E32/E220系列LoRa无线模块采用全新一代LoRa调制技术,抗干扰性能、通信距离都远超现在的FSK、GFSK调制方式的产品。模块支持空中唤醒、无线配置、载波监听、自动中继、通信密钥等功能,可应用于智能家庭、无线抄表、科研和医疗以及中远距离无线通信。
来源:阿尔科技Daily