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
关注
私信
展开阅读全文
作者:嵌入式小五