通過本文帶大家零基礎(chǔ)使用STM32F407VET6單片機(jī)進(jìn)行E22-400T22S模塊編程并進(jìn)行簡(jiǎn)單的通信,當(dāng)然如果學(xué)會(huì)了,也可以舉一反三應(yīng)用于E22、E220、E32所有模塊上。
一
STM32環(huán)境零基礎(chǔ)搭建
本次實(shí)驗(yàn)將會(huì)使用到的軟件是Keil和STM32CubeMX,沒有這兩個(gè)軟件沒有請(qǐng)?jiān)诰W(wǎng)上自行下載。本章節(jié)零基礎(chǔ)手把手教會(huì)你搭建最快捷、最簡(jiǎn)單的STM32代碼運(yùn)行環(huán)境。
1.1 keil的芯片固件包下載與安裝
本文使用到的MCU是STM32F407VET6,對(duì)于Keil來說需要提前安裝好相應(yīng)的固件包,固件包下載地址是https://www.keil.arm.com/packs/stm32f4xx_dfp-keil/,下載好之后,雙擊運(yùn)行,默認(rèn)安裝即可。
1.2 通過STM32CubeMX生產(chǎn)代碼文件
打開STM32CubeMX軟件,點(diǎn)擊如圖1.1的“序號(hào)1”新建一個(gè)項(xiàng)目,然后出現(xiàn)圖1.2這個(gè)界面,先在“序號(hào)1”輸入框中輸入STM32F407VET6,然后選中“序號(hào)2”的芯片,最后點(diǎn)擊“序號(hào)3”開始新工程的搭建。

圖1.1
圖1.2
進(jìn)去芯片配置界面,首先配置SWD燒錄口,以便于程序的燒入和Debug調(diào)試,如圖1.3所示,點(diǎn)擊“System Core”選項(xiàng)卡里面的“序號(hào)1”SYS,然后找到“序號(hào)2”的選擇框,我們選擇“Serial Wire”,這樣程序燒錄引腳就配置完成。
接著見圖1.4所示,在“System Core”選項(xiàng)卡里面找到“序號(hào)1”RCC,選擇單片機(jī)的時(shí)鐘源,點(diǎn)擊“序號(hào)2”的下拉菜單,選擇“Crystall/Ceramic Resonator”晶振,這里只配了高速時(shí)鐘,如果需要低速時(shí)鐘的話,可以自己配置下面的選項(xiàng)卡“High Speed Clock(LSE)”。

圖1.3

圖1.4
配置LED的GPIO,該引腳用于發(fā)送接收時(shí)候狀態(tài)的指示。本文使用到的單片機(jī)控制LED 的GPIO口是PC13,這里選擇你自己?jiǎn)纹瑱C(jī)控制LED的IO口引腳,本文就以PC13口作為示例。如圖1.5所示,首先找到并點(diǎn)擊“序號(hào)1”的PC13芯片引腳,選擇“GPIO_Output”,接下來點(diǎn)擊“序號(hào)3”就會(huì)彈出下面的選擇框,如“序號(hào)4”所示,可以參考“序號(hào)4”的配置,這樣LED的GPIO口就配置完成。

圖1.5
配置AUX的GPIO,該引腳是反饋E22模塊的狀態(tài),AUX為高電平說明正常,本文使用的的單片機(jī)IO口為PC1,操作如圖1.6所示,首先點(diǎn)擊“序號(hào)1”,然后選擇“序號(hào)2”模式設(shè)為輸入模式,然后點(diǎn)擊“序號(hào)3”,緊接著選擇“序號(hào)4”,最后點(diǎn)擊“序號(hào)5”,最后按照“序號(hào)6”的內(nèi)容進(jìn)行選擇。

圖1.6
配置M0的GPIO,該引腳是接E22模塊的M0引腳,用于控制E22的模式,本文使用的的單片機(jī)IO口為PA1,操作如圖1.7所示,首先點(diǎn)擊“序號(hào)1”,然后選擇“序號(hào)2”模式設(shè)為輸出模式,然后點(diǎn)擊“序號(hào)3”,緊接著選擇“序號(hào)4”,最后點(diǎn)擊“序號(hào)5”,最后按照“序號(hào)6”的內(nèi)容進(jìn)行選擇。

圖1.7
配置M1的GPIO,該引腳是接E22模塊的M1引腳,用于控制E22的模式,本文使用的的單片機(jī)IO口為PD14,操作如圖1.8所示,首先點(diǎn)擊“序號(hào)1”,然后選擇“序號(hào)2”模式設(shè)為輸出模式,然后點(diǎn)擊“序號(hào)3”,緊接著選擇“序號(hào)4”,最后點(diǎn)擊“序號(hào)5”,最后按照“序號(hào)6”的內(nèi)容進(jìn)行選擇。

圖1.8
接下來配置USART串口,操作如圖1.9所示,選擇“序號(hào)1”,點(diǎn)擊“序號(hào)2”,選擇“USART1”,然后點(diǎn)擊“序號(hào)3”的菜單下拉框,選擇“Asynchronous”,然后點(diǎn)擊“序號(hào)4”彈出選擇框,找到“序號(hào)5”,把波特率改為“9600 Bit/s”,這樣串口通信就配置成功。
為了實(shí)現(xiàn)USART串口中斷接收,操作如圖1.10所示,選擇“序號(hào)1”,然后勾選“序號(hào)4”,使能串口中斷。
圖1.9
圖1.10
現(xiàn)在來配置系統(tǒng)時(shí)鐘樹,操作如圖1.11所示,點(diǎn)擊“序號(hào)1”的“Clock Configuration”,然后在“序號(hào)2”的框中改為8,我們選擇的是8MHz的晶振,這里按照自己?jiǎn)纹瑱C(jī)的實(shí)際晶振可做修改,然后點(diǎn)擊“序號(hào)3”,再點(diǎn)擊“序號(hào)4”,最后把“序號(hào)5”的框中改為72,這里配置的系統(tǒng)時(shí)鐘頻率是72MHz,也可以自己選擇配置成自己想要且合理的系統(tǒng)時(shí)鐘頻率。

圖1.11
最后來到“Project Manager”,操作如圖1.12所示,先點(diǎn)擊“序號(hào)1”,然后在“序號(hào)2”的框中為自己的工程文件取名字,筆者這里取名為“STM_T”,再在“序號(hào)3”中選擇自己工程文件的存儲(chǔ)位置,最后在選擇框“序號(hào)4”中選擇“MDK-ARM”。
最后一步,操作如圖1.13所示,我們選擇“序號(hào)1”,然后點(diǎn)擊“序號(hào)2”,這里選項(xiàng)的意思是該工程文件只生成必要的函數(shù)庫(kù)文件,再勾選上“序號(hào)3”,最后選擇點(diǎn)擊“序號(hào)4”完成工程代碼的生成。

圖1.12

圖1.13
二
單向發(fā)送代碼
2.1 代碼編寫
雙擊打開keil工程,操作如圖2.1所示,按照如下圖2.1所示路徑,點(diǎn)擊“序號(hào)1”keil的運(yùn)行程序,最后打開的頁(yè)面應(yīng)該是如圖2.2所示。

圖2.1

圖2.2
實(shí)現(xiàn)發(fā)送信息的功能。操作如圖2.3所示,點(diǎn)擊“序號(hào)1”的mian.c文件,然后在“序號(hào)2”框出來位置,寫入“序號(hào)3”的代碼,char msg[]= "Hello,Ebyte!\r\n"; ;然后進(jìn)行圖2.4的操作,點(diǎn)擊“序號(hào)1”的mian.c文件,然后在“序號(hào)2”框出來位置,寫入“序號(hào)3”的代碼,#include "string.h";最后進(jìn)行圖2.5的操作,點(diǎn)擊“序號(hào)1”的mian.c文件,然后在“序號(hào)2”框出來位置,寫入“序號(hào)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 程序燒錄下載
準(zhǔn)備好單片機(jī)和燒錄器,本文使用的燒錄器是STlink,把STlink與單片機(jī)需要燒錄的引腳連接好,操作如圖2.5所示,點(diǎn)擊“序號(hào)1”的魔術(shù)棒,然后點(diǎn)擊“序號(hào)2”,在“序號(hào)3”左邊的選擇框選ST-Link Debugger,然后選“Settings”,接著跳出一個(gè)界面,看“序號(hào)4”查詢是否檢測(cè)到芯片,然后對(duì)比“序號(hào)5”進(jìn)行修改,點(diǎn)擊“序號(hào)6”確定。
按照?qǐng)D2.7進(jìn)行程序的下載,先點(diǎn)擊“序號(hào)1”進(jìn)行編譯,再點(diǎn)擊“序號(hào)2”進(jìn)行程序的下載。

圖2.6

圖2.7
三
實(shí)操
3.1 實(shí)物準(zhǔn)備
準(zhǔn)備好兩個(gè)E22模塊,一個(gè)單片機(jī),一個(gè)串口工具,若干杜邦線,本文實(shí)物準(zhǔn)備如圖3.1所示。通過串口工具打開E22相應(yīng)的上位機(jī),上位機(jī)在官網(wǎng)下載,通過上位機(jī)先把模塊都復(fù)位,如圖3.2所示。

圖3.1

圖3.2
3.2 連線
E22模塊與單片機(jī)連線,連線是根據(jù)自己配置的引腳進(jìn)行連線,本文提供的連線如表3.1所示,連接好之后給單片機(jī)上電。
表3.1
另外一個(gè)E22與串口工具的連線也類似,連接好之后,給串口助手插入電腦,打開串口助手,打開對(duì)應(yīng)COM口,接收的數(shù)據(jù)信息如圖3.3所示。至此,E22模塊的單向傳輸功能已實(shí)現(xiàn)。
圖3.3
-
單片機(jī)
+關(guān)注
關(guān)注
6067文章
44991瀏覽量
650404 -
通信
+關(guān)注
關(guān)注
18文章
6206瀏覽量
137811 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
364866
發(fā)布評(píng)論請(qǐng)先 登錄
《零基礎(chǔ)開發(fā)AI Agent——手把手教你用扣子做智能體》
功耗評(píng)測(cè)之低功耗LoRa模塊E22-400T22S各個(gè)模式下的波形分析
手把手教你學(xué)stm32
【免費(fèi)試用08期】E22-400T22S Lora無線模板試用活動(dòng)
美女手把手教你如何裝機(jī)(中)
手把手教你安裝Quartus II
手把手教你學(xué)LabVIEW視覺設(shè)計(jì)
手把手教你開發(fā)基于單片機(jī)的wifi通信的物聯(lián)網(wǎng)項(xiàng)目(遠(yuǎn)程燈控制)

手把手教你查找stm32 HardFault_Handler調(diào)試及問題方法

手把手教你移植openharmony3.0到stm32(liteos_m)

評(píng)論