LoRa芯片SX1278官方驱动移植

Kenda ·
更新时间:2024-11-13
· 512 次阅读

1.首先找一个空白的工程模板,在工程里面建立两个文件夹(组)radio和platform,向platform中添加,fifo.c, led.c, sx1276-Hal.c, sx12xxEiger.c;向radio中添加radio.c, sx1276-Fsk.c, sx1276-FskMisc.c, sx1276-LoRa.c, sx1276-LoRaMisc.c, sx1276.c; 并在工程中添加其对应的头文件路径。编译整个工程,出现错误。
2.第一处修改,在开发软件中添加宏定义PLATFORM=SX12xxEiger,此宏定义在platform.h文件的开头调用,用于条件编译。
3.找不到头文件stm32f10x.h。这里我们在sx12xxEiger.h和fifo.h中的开始部分修改宏定义,两处一样,如图1所示。因为我用的是103平台,所以根据需求修改。
在这里插入图片描述
图1 修包含改头文件
3.注释部分用不到的代码,根据平台修改,入门级学习,此处直接注释。将sx12xxEiger.c中的下面代码注释。

//#if( defined( STM32F4XX ) || defined( STM32F2XX ) || defined( STM32F429_439xx ) ) // //#include "usbd_cdc_core.h" //#include "usbd_usr.h" //#include "usbd_desc.h" // //#else // //#include "usb_regs.h" //#include "usb_core.h" //#include "usb_init.h" //#include "usb_pwr.h" //#include "usb_bsp.h" //#include "usb_sil.h" // //#endif //#if( defined( STM32F4XX ) || defined( STM32F2XX ) || defined( STM32F429_439xx ) ) // //#ifdef USB_OTG_HS_INTERNAL_DMA_ENABLED // #if defined ( __ICCARM__ ) /*!< IAR Compiler */ // #pragma data_alignment=4 // #endif //#endif /* USB_OTG_HS_INTERNAL_DMA_ENABLED */ // //__ALIGN_BEGIN USB_OTG_CORE_HANDLE USB_OTG_dev __ALIGN_END ; // //#else // //#endif

将 void BoardInit(void)函数中的代码全部注释,注意不要注释函数名字。因为我使用的是Cube MX配置的HAL库所以不需要进行初始化了,并且sx1276驱动源码是在标准的库函数上编写的。

4.修改led相关内容。首先修改led.h文件中的IO口相关定义,不用关心条件编译中的其他平台,我们只关心#else里面的,改动如下
原创文章 2获赞 0访问量 236 关注 私信 展开阅读全文
作者:嵌入式小五



lora

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章
Leona 2021-04-13
521