打开主菜单

谷雨文档中心 β

更改

NBDK-L4:LiteOS NBIOT实验教程

添加1,785字节2019年4月30日 (二) 17:30
无编辑摘要
=== 源码详解 ===
本节中的源码说明,仅针对此例程中的重要功能,详细的源码介绍请参照代码后的注释。
 
==== stm32l4xx_hal_conf.h ====
此文件位于“工程名\Src\User”路径中,主要用途是选择使能此例程使用到的库文件。
 
此例程我们主要给大家展示STM32L4的UART,SPI,GPIO,TIM等功能,所以我们宏定义中打开相关的宏。<syntaxhighlight lang="c" line="1" start="103">
// 使能的宏
#define HAL_MODULE_ENABLED // 芯片
#define HAL_FLASH_MODULE_ENABLED // Flash
#define HAL_PWR_MODULE_ENABLED // 电源
#define HAL_RCC_MODULE_ENABLED // 时钟
#define HAL_CORTEX_MODULE_ENABLED // NVIC
 
#define HAL_GPIO_MODULE_ENABLED // GPIO
#define HAL_DMA_MODULE_ENABLED // DMA
#define HAL_SPI_MODULE_ENABLED // SPI
#define HAL_UART_MODULE_ENABLED // USART
#define HAL_TIM_MODULE_ENABLED // TIM
</syntaxhighlight>
==== main.c ====
创建起始LiteOS任务。
完成以上工作后,启动LiteOS,进行任务调度。<syntaxhighlight lang="c" line="1" start="57">int main(void){ UINT32 uwRet; // 初始化硬件 HAL_Init(); SystemClock_Config(); // 初始化LOS内核 uwRet = LOS_KernelInit(); if (uwRet != LOS_OK) { return LOS_NOK; } // 使能LOS系统tick中断 uwRet = LOS_EnableTick(); if (uwRet != LOS_OK) { return LOS_NOK; } // 初始化开发板硬件 HardWare_Init(); // 初始化用户任务 LosTask_Init(); // 运行LOS (void)LOS_Start(); for(;;);}</syntaxhighlight> ==== los_nbxx_entry.c ====los_nbxx_entry.c是NB相关操作的RTOS任务文件,其中定义了LiteOS任务函数LOS_NbIot_Tskfunc。在任务函数内部进行屏幕初始化(因显示屏中使用了LiteOS信号量,所以要在任务函数中初始化),并打印相关信息。 接着初始化TIM为PWM输出,控制LED闪烁。 在主循环内部使用一个简易状态机,根据APP_STATE的状态量,执行不同的NB AT 指令。
119
个编辑