欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2418|回復: 2
收起左側

LoRa-官方例程移植(白衣盡濕)

[復制鏈接]
ID:364662 發表于 2018-7-4 11:21 | 顯示全部樓層 |閱讀模式
X1278芯片上移植Semtech官方PING-PONG例程
移植環境:keil5.20
硬件平臺:stm32f051+sx1278
1、下載源碼:Semtech官網下載最新例程鏈接:
2、準備文件: SX12xxDrivers-V2.1.0文件夾下只有src為我們需要使用的文件夾,src文件夾下有platform文件夾、radio文件夾和一個文件main.c,platform文件夾存放的是不同硬件平臺的驅動,我們只需要sx12xxEiger文件夾和platform.h;另外,由于我用的是STM32F0,所以sx12xxEiger文件夾里面有關其他STM32硬件平臺的文件也都不要,LoRa芯片使用的是SX1278,關于sx1272、sx1276、sx1232、sx1509的文件也都不要,還有一個radio文件夾,里面關于sx1272、sx1276、sx1232、sx1509的文件也都不要。
3、在KEIL里建工程,直接拿官方的固件庫來建就行了,不再贅述。把步驟2整理后的文件加到工程中,基本框架就搭好了。
4、啥都不說,先編譯一下,數不清的錯誤。從main.c文件開始捋一捋,程序過程很簡單,先初始化stm32f0的時鐘,初始化SPI,初始化LED等,初始化systick,接著再初始化6個GPIO口作為sx1278中斷的檢測口,STM32F0的初始化完成了;
5、再復位LoRa芯片sx1278,復位完成,然后是初始化LoRa模塊;設置LoRa工作方式為睡眠模式,設置射頻通信方式為LoRa模式,設置工作方式為待機模式,讀取LoRa所有寄存器(111個寄存器,一共112個寄存器,0x00寄存器是讀接收緩存區的,沒收到數據,不用讀)的值,這些值是LoRa寄存器的上電缺省值,有些在后面會用到,這里一次性讀了;然后繼續初始化,設置LoRa的參數,如:LNA放大增益、通信主頻率、擴頻因子、帶寬、編碼率、超時閾值、天線發射功率等等等等,了解全部參考datasheet即可。
6、初始化完成后,設置LoRa為接收模式,然后進入while循環,循環里面運行函數SX1276LoRaProcess(),這個函數最為重要,是整個程序的核心,函數里面類似于一個狀態機,LoRa的個個狀態下都有相應的實現代碼,完成動作(比如完成一次接受)后,返回相應的值,通過調用這個函數,判斷它的返回值,來確定下一步動作。
7、整個例程的工作流程到這里就結束了。例程有地方不太明白,就多看幾遍,基本就理解了。
8、分析完了程序的工作流程,開始調試;先試一試SPI通信是否正常,SX1276ReadBuffer( REG_LR_OPMODE, &buff, 1 );,讀取當前工作模式,通過查看返回值判斷通信是否正常;然后就切換到接收模式,發送一個字符串;發送完成,切換到接收模式,接收到數據,再切換到發送模式,發送一個字符串,如此循環;
9、為了方便調試,用串口把接收到的數據打印出來,同時,接收到數據后,讓LED1燈狀態翻轉一下,發送完成后,讓LED2狀態翻轉一下。移植到此就完成了。
10、debug小技巧,官方給的源文件里面,有很多代碼你都沒有用到,建議把他們都屏蔽掉,還有宏也是,這樣報錯會少很多。

貼一下我的工程目錄:
也有沒用到的.c文件,把里面的內容注釋了。
已上,完!

回復

使用道具 舉報

ID:387934 發表于 2018-8-19 20:51 | 顯示全部樓層
不錯,好資料,51黑有你更精彩!!!
回復

使用道具 舉報

ID:445069 發表于 2019-3-27 09:24 | 顯示全部樓層
太好了,多謝樓主提供了對Lora官方例程的分析。這下才能理解很多為什么。
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表