所用單片機為STM32F407,此篇為當時做電賽時未記錄,但是現在忘了所以重新記錄一下,防止自己忘記??偟膩碚f就是用串口給LoRa模塊發(fā)送AT指令來配置模塊,然后單片機想要發(fā)數據也是使用串口發(fā)送出去。
1、引腳連接
-
MD0引腳配置為推挽輸出模式,并配置為下拉,AUX引腳配置為輸入模式,并配置為下拉
(MD0、AUX 引腳懸空下為低電平)
(模塊根據MD0 的配置與AUX 引腳的狀態(tài)會進入不同的功能)
-
TXD、RXD與單片機的uart3的RXD以及TXD分別連接
-
GND、VCC即連在單片機上
(無線串口模塊為TTL 電平,請與TTL 電平的MCU 進行連接)
(模塊的引腳電平是3.3V,與5V 的單片機通信需要做電平轉換適配)
2、LoRa整體函數流程
LoRa_Init()函數,初始化函數
上電后,AUX 空閑狀態(tài)(即AUX=0),MD0=1,進入配置模式
使用AT指令測試模塊響應情況
LoRa_Set(),LoRa配置
usart3_set():設置uart3的波特率、校驗位(進入配置前首先要設置通道波特率和校驗位115200 8位數據位 1位停止 無校驗位)
同樣的,等待AUX 空閑狀態(tài)(即AUX=0),然后MD0=1,進入配置模式
使用AT指令設置設備地址、信道和空中速率、發(fā)射功率、工作模式、發(fā)送狀態(tài)、睡眠時間、串口波特率、數據校驗位(此處為填充LoRA的各種參數的結構體,并沒有直接寫入)
然后再使用usart3_set()寫入波特率和校驗位
while循環(huán)內
LoRa_SendData():使用按鍵來選擇發(fā)送數據
根據前面結構體中填充的數據來判斷是什么模式,本人在此用的是透明傳輸模式,無需設置目標信道的地址等、若需要使用定向傳輸模式,需要設置目標的地址、目標的信道。
LoRa_ReceData():接收從機發(fā)送的數據
接收從機發(fā)送的數據,判斷為哪個傳感器發(fā)送的數據,然后發(fā)送數據給DTU,DTU去上傳數據給阿里云物模型,DTU使用的是uart2(具體有關DTU部分請看本人空間內有關DTU的文章)
3、中斷函數
Aux_int 中斷設置函數,該函數用于配置MCU 外部中斷觸發(fā)方式。
它可用于獲取Aux 引腳的中斷情況,若MCU 要接收模塊發(fā)送的數據,則可配置上升沿觸發(fā),以提示數據要來了,MCU 請做好準備。當MCU 想知道模塊的數據是否已全部發(fā)送給MCU,則可配置下降沿中斷,提示數據已經接收完了。文章來源:http://www.zghlxwxcb.cn/news/detail-473678.html
EXTI9_5_IRQHandler()中斷服務函數,在函數中可以看到,當是上升沿中斷觸發(fā),先判斷是否為接收模式,是則將串口接收數據計數清零,然后設置下降沿觸發(fā),以表示模塊開始發(fā)送數據或開始輸出數據。當下次下降沿中斷來臨,若是接收模式模式則標記串口接收數據已接收完成,若當前是發(fā)送模式狀態(tài)的話,則知道數據已發(fā)送完畢,重新標記為接收模式,然后再調用Aux_Int 函數配置下次觸發(fā)的邊沿中斷,再繼續(xù)實現一次發(fā)送或接收。文章來源地址http://www.zghlxwxcb.cn/news/detail-473678.html
到了這里,關于正點原子LoRa模塊的使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!