LoRa官方固件下載:https://pan.baidu.com/s/1ftP-HMJTmF9PtA05Lt-Tag 密碼:bc8yIAR代碼操作快捷鍵如果要在整個工程中查找 某個單詞或者其他,則按照如下方式查找:LoRa驅(qū)動框架硬件接口設計硬件接口函數(shù)驅(qū)動移植過程(修改代碼之后可以先編譯,然后再看哪里還需要修改)LoRa固件中相關文件復制到IAR工程里面IAR工程中添加工作組添加相關文件(platform文件中請將下圖的sx1232-Hal.c換成sx1276-Hal.c,特此更正)修改硬件平臺:添加宏定義,選擇sx1276的硬件庫(platform文件中請將下圖的sx1232-Hal.c換成sx1276-Hal.c,特此更正)
添加新增文件的包含路徑
修改硬件平臺:修改相關代碼,并添加宏定義,選擇我們實際使用的MCU硬件庫(本項目中使用的是STM32F051K8)(先編譯代碼,然后根據(jù)錯誤提示修改)
注釋掉USB相關代碼和初始化函數(shù)(先編譯代碼,然后根據(jù)錯誤提示修改)
修改led.h中IO口定義(根據(jù)IO功能映射表)
typedef enum { LED_GREEN = 0,//如果從第二個成員開始,第一個就沒有任何意義,隨便填一個就可以了 LED_RX = 1,//接收指示燈,根據(jù)端口映射表可知,我們實際使用了三個指示燈。假設我們從第二個成員開始 LED_TX = 2,//發(fā)送指示燈 LED_NT = 3,//網(wǎng)絡指示燈#if defined( STM32F4XX ) || defined( STM32F2XX ) || defined( STM32F429_439xx ) LED_DBG3 = 4,#endif} tLed;
修改led.c
void LedOn( tLed led )//燈亮{ HAL_GPIO_WritePin( LedPort[led], LedPin[led], LED_ON );//HAL庫函數(shù)原型:void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)}void LedOff( tLed led )//燈滅{ HAL_GPIO_WritePin( LedPort[led], LedPin[led], LED_OFF ); //HAL庫函數(shù)原型:void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)}void LedToggle( tLed led )//燈狀態(tài)翻轉(zhuǎn),此處不使用{ //LedPort[led]->ODR ^= LedPin[led]; }
修改sx1276-Hal.c(請將下圖的sx1232-Hal.c換成sx1276-Hal.c,其代碼修改方式一致,特此更正)
/*! * SX1232 SPI NSS I/O definitions */#if defined( STM32F4XX ) || defined( STM32F2XX )#define NSS_IOPORT GPIOA#define NSS_PIN GPIO_Pin_15#else#define NSS_IOPORT GPIOA#define NSS_PIN GPIO_PIN_7#endif/*! * SX1232 DIO pins I/O definitions */#if defined( STM32F4XX ) || defined( STM32F2XX )#define DIO0_IOPORT GPIOG#define DIO0_PIN GPIO_Pin_13#else#define DIO0_IOPORT GPIOA#define DIO0_PIN GPIO_PIN_11#endif#if defined( STM32F4XX ) || defined( STM32F2XX )#define DIO1_IOPORT GPIOB#define DIO1_PIN GPIO_Pin_8#else#define DIO1_IOPORT GPIOA#define DIO1_PIN GPIO_PIN_12#endif#if defined( STM32F4XX ) || defined( STM32F2XX )#define DIO2_IOPORT GPIOA#define DIO2_PIN GPIO_Pin_2#else#define DIO2_IOPORT GPIOA#define DIO2_PIN GPIO_PIN_3#endif#if defined( STM32F4XX ) || defined( STM32F2XX )#define DIO3_IOPORT #define DIO3_PIN RF_DIO3_PIN#else#define DIO3_IOPORT GPIOA#define DIO3_PIN GPIO_PIN_2#endif
另外具體分析 sx1276-Hal.c中的如下代碼: 修改sx1276-Hal.h
#define GET_TICK_COUNT( ) ( HAL_GetTick() )#define TICK_RATE_MS( ms ) ( ms )修改spi.c
LoRa模塊上電自檢:如果能讀取LoRa芯片的版本號,則SPI功能正確,驅(qū)動移植成功
上電通過SPI總線讀取芯片版本,判斷讀取值是否為0x12,并打印模塊版本號。
//如果要使用sx1278相關的接口函數(shù),則需要包含如下頭文件#include 'platform.h'#include 'radio.h'#include 'sx1276-Hal.h'#include 'sx1276-LoRa.h'#include 'sx1276-LoRaMisc.h'
|
|
|