国产区在线视频就爱_亚洲精品 日韩无码_在线a亚洲v天堂网2018_完整版在线观看_免费的成年私人影院网站_国产理论片免费观看_日本一区精品一本大道_亚洲性天堂无码资源热_中文字幕免费无遮挡无删减_久久五月天亚洲色图

還不會(huì)用LoRa模組?看這一篇就夠了!

LoRa模組憑借其優(yōu)異的射頻性能和穩(wěn)定性,被廣泛應(yīng)用于各類(lèi)物聯(lián)網(wǎng)應(yīng)用中,本文將為大家介紹致遠(yuǎn)電子官方驅(qū)動(dòng)代碼的移植關(guān)鍵步驟,適用于ZM4xxSX-M系列LoRa射頻模組。

為了加快用戶(hù)LoRa產(chǎn)品的開(kāi)發(fā)進(jìn)度,致遠(yuǎn)電子已經(jīng)實(shí)現(xiàn)了其底層驅(qū)動(dòng)。用戶(hù)移植驅(qū)動(dòng)代碼后,只需要專(zhuān)注于自己的產(chǎn)品功能開(kāi)發(fā)即可。致遠(yuǎn)電子官方LoRa驅(qū)動(dòng)代碼鏈接如下,用戶(hù)可免費(fèi)下載!

在介紹驅(qū)動(dòng)代碼的移植之前先簡(jiǎn)單說(shuō)一下驅(qū)動(dòng)的目錄結(jié)構(gòu):

LoRa驅(qū)動(dòng)代碼目錄結(jié)構(gòu)

在該驅(qū)動(dòng)例程中,前三個(gè)文件夾:startup、core、soc與具體用戶(hù)的MCU相關(guān),不用移植。Demo文件夾下面放的是致遠(yuǎn)電子提供的例程代碼,用戶(hù)可以選擇性移植。User_code文件夾下存放用戶(hù)的應(yīng)用程序,可以不用移植。真正且必須移植的是radio和sx127x這兩個(gè)文件夾下面的代碼,這兩個(gè)文件夾下包含的是驅(qū)動(dòng)和配置代碼。

在移植代碼之前需要注意:

1.確認(rèn) MCU 與 ZM4xx 模組相連的引腳可配置為上下拉模式的,有客戶(hù)在使用過(guò)程中出現(xiàn)復(fù)位或 SPI片選引腳輸出高電平時(shí)電平只有 2.0V,從而導(dǎo)致模組復(fù)位異?;?SPI 通信不正常。原因是該 MCU 引腳無(wú)上下拉模式,需要靠外部接上拉電阻才能把電平拉高

2.客戶(hù)在移植驅(qū)動(dòng)時(shí),除非是編譯問(wèn)題,否則不能修改 sx127x.c 里面的內(nèi)容,也不能把spi 函數(shù)寫(xiě)在 sx127x.c 里面,我們只需要用戶(hù)從 sx127x_radio_lora_cfg.c 文件將 spi 函數(shù)傳入即可。

一、驅(qū)動(dòng)代碼的移植用

驅(qū)動(dòng)移植

二、文件的修改

用戶(hù)只需要修改sx127x_radio_lora_cfg.c文件內(nèi)容即可。首先用戶(hù)需要提供以下函數(shù):

1.準(zhǔn)備SPI驅(qū)動(dòng)

ZM4xxSX-M系列的LoRa模組都是使用SPI接口通信,用戶(hù)僅需要提供SPI讀字節(jié)和寫(xiě)字節(jié)的函數(shù)即可。其用戶(hù)MCU主機(jī)SPI特性如下;
  • SPI主機(jī)采用模式0,CPOL=0和CPHA=0;
  • 全雙工通信;
  • 數(shù)據(jù)長(zhǎng)度8位,MSB通信;
  • SPI速度需要小于10M;

用戶(hù)SPI操作函數(shù)

注意:用戶(hù)無(wú)需在SPI讀寫(xiě)函數(shù)內(nèi)部操作CS片選引腳,函數(shù)內(nèi)部只需要單純發(fā)送或接收一個(gè)字節(jié)的數(shù)據(jù)即可。

2.準(zhǔn)備GPIO操作驅(qū)動(dòng)

模組除了SPI的SCK、MISO、MOSI引腳之外,還有片選引腳和復(fù)位引腳,驅(qū)動(dòng)中需要對(duì)這兩個(gè)引腳進(jìn)行操作,因此需要用戶(hù)提供這兩個(gè)引腳的GPIO操作函數(shù):設(shè)置引腳電平函數(shù)(RESET和CS引腳初始化時(shí)需要設(shè)置為上拉輸出高電平)。

GPIO操作驅(qū)動(dòng)

3.提供延時(shí)函數(shù)

ZM4xxSX-M內(nèi)部讀寫(xiě)寄存器有一定的時(shí)序要求,所以需要用戶(hù)提供延時(shí)函數(shù)。包括微秒延時(shí)和毫秒延時(shí)兩個(gè)函數(shù)。注意必須是精準(zhǔn)的延時(shí),不能是軟件循環(huán)延時(shí),因?yàn)樾枰?qū)動(dòng)有發(fā)送超時(shí),如果延時(shí)不精準(zhǔn)容易到時(shí)發(fā)送失敗。

延時(shí)函數(shù)

準(zhǔn)備好上述函數(shù)后,用戶(hù)需要將這些函數(shù)注冊(cè)到驅(qū)動(dòng)里面。sx127x_radio_loar_cfg.c文件提供了一個(gè)模板,如圖所示。用戶(hù)只需要將上述說(shuō)的三種函數(shù)對(duì)應(yīng)替換成自己的函數(shù)即可,其他地方不必修改。

三、移植完成后驗(yàn)證

當(dāng)用戶(hù)完成上述兩個(gè)大步驟之后,用戶(hù)需要在模組初始化之前自行完成SPI、GPIO和延時(shí)功能的初始化。然后參考致遠(yuǎn)官方例程中的main()函數(shù)中的內(nèi)容,進(jìn)行驗(yàn)證自己移植的程序是否可以正常工作。

如果無(wú)線(xiàn)模組初始化函數(shù):radio_zm4xx_inst_init()返回值!=0,則說(shuō)明初始化成功,SPI通信沒(méi)問(wèn)題。然后可以參考致遠(yuǎn)電子提供的無(wú)線(xiàn)收發(fā)demo程序:demo_zm4xx_entry(handle),如果模組能夠正常通信說(shuō)明該LoRa的驅(qū)動(dòng)代碼到此移植成功!