;
关注华体会HTH官方网站掌握最新行业动态与资讯
当前位置: 首页 > 华体会HTH新闻 > 热点新闻

华体会最新首页NBDK-L4:LiteOS NBIOT实验教程

发布日期:2024-08-25 访问量: 来源:华体会HTH官方网站

  LiteOS 是Huawei推出的面向物联网领域轻量级实时操作系统,是华为IOT的一部分。LiteOS基础内核是最精简的Huawei LiteOS操作系统代码,包括任务管理、内存管理、时间管理、通信机制、中断管理、队列管理、事件管理、定时器等操作系统基础组件。

  下面将以NBDK-L4为硬件平台,以LiteOS为系统软件,实现NB-IOT相关功能。包括附着网络,数据通信等。NB-IOT模组是谷雨NB101。NB101的详细说明可以查阅谷雨文档中心NB-IOT资料汇总。

  大家打开任意一个基础例程,都会看到如下的4个目录(Drivers、Inc、MDK-ARM、Src)及clean.bat文件。

  其中clean.bat是用于清除工程编译生成的中间文件。例如我们想拷贝一个编译过的工程,工程有200M左右大小,我们点击clean.bat清除一下编译生成的中间文件,则工程大概会缩小到100M左右,此时工程只剩下了库文件、用户文件,以及编译生成的hex文件。

  从上图可以看到,四个主目录下分别包含的一些文件,这边给大家简单的介绍一下这边文件大概的功能。

  Drivers:

  STM32驱动文件目录,也就是大家常说的hal库,里面包含了hal(硬件抽象层)相关的文件。

NBDK-L4:LiteOS NBIOT实验教程

  主要就是有RCC时钟、Flash内存,以及大家常用的外设(例如uart、spi、adc等等)的一些库文件。

  Inc:

  用户.h头文件,用户文件的头文件一般都放到这边,也可自己另存其他位置,但是需要在keil中添加头文件所在的路径。

NBDK-L4:LiteOS NBIOT实验教程

  添加新路径的方式如下图所示,可以看到/Inc这个路径已经事先添加进去了。

  MDK-ARM:

  工程目录,主要是两个工程文件“.uvoptx”以及".uvprojx"(keil打开的是这个)。剩下的文件比较重要的是Output目录下编译生成的“.hex”文件。

  Src:

  用户.c文件,用户自己开发的一些驱动文件(外设驱动等等),以及main文件所在的目录。

  针对试验工程中的常见文件,我们以开发者的方式来给大家做一个简单的介绍。具体每个文件中的源码的详细说明,大家可以参照每个试验下的源码详解。

  在01实验中,只进行NB附着网络操作。在NB附着网络成功后,在显示屏上打印信号的RSSI值及设备分配的IP地址。NBDK-L4与NB模块是通过串口进行通信。NBDK-L4通过串口进行AT指令发送与接收。NB模块与NBDK-L4硬件连接如下图所示。

  其中NB_TX与NB_RX是NB模块的串口通信口;NB_EN是控制NB模块上的电源,高电平有效;NB_RST则是复位功能,低电平有效。NB_NET与NB_RI暂未使用(核心模组不支持)。其中SW2是一个单刀双掷开关,用于切换NB模块串口与MCU相连或USB串口相连。这样设计方便开发者对NB模块进行操作。如果NB模块串口直连USB串口,则可以使用谷雨提供的NB Tool对NB模块进行测试,详细说明查看NB Tool说明手册。 使用miniUSB线及10pin排线,通过Jlink仿真器连接PC端和开发板。 使用miniUSB线,连接PC与开发板USB接口。 将SW1拨到USB端,SW2拨到MCU。 使用Keil打开NB_AttachNetwork。 根据所用显示屏,开启相应宏定义 编译,下载程序

  下载程序之后,NBDK-L4通过串口操作NB模块,并在显示屏上显示"LiteOS.

  NB_AttachNetwork.

  "。如果程序没有运行,开发者可以复位NBDK-L4。此时NBDK-L4的LED灯,以1秒为周期,占空比为50进行闪烁。

  打开串口助手,选择与NBDK-L4相连串口,并配置串口参数为115200,8,N,1。会显示NBDK-L4与NB模块AT指令日志。如下图所示。

  NB模块附着网络后,会在屏幕上打印信号强度及分配的IP地址。同时LED以2秒为周期,占空比为5进行周期闪烁。

  本节中的源码说明,仅针对此例程中的重要功能,详细的源码介绍请参照代码后的注释。

  此文件位于“工程名SrcUser”路径中,主要用途是选择使能此例程使用到的库文件。

  此例程我们主要给大家展示STM32L4的UART,SPI,GPIO,TIM等功能,所以我们宏定义中打开相关的宏。

  main函数,我们的例程由此处开始执行,首先调用HAL_Init()函数初始化我们的模块,接着调用SystemClock_Config()函数初始化此例程用到的时钟,具体有哪些时钟被初始化,在gyu_util.c部分有详细说明。华体会HTH

  接下来我们初始化LiteOS内核。

  接着使能LiteOS心跳定时器。

  接着初始化工程中使用的外设。

  创建起始LiteOS任务。

  完成以上工作后,启动LiteOS,进行任务调度。

  los_nbxx_entry.c是NB相关操作的RTOS任务文件,其中定义了LiteOS任务函数LOS_NbIot_Tskfunc。在任务函数内部进行屏幕初始化(因显示屏中使用了LiteOS信号量,所以要在任务函数中初始化),并打印相关信息。

  接着初始化TIM为PWM输出,控制LED闪烁。

  在主循环内部使用一个简易状态机,根据APP_STATE的状态量,执行不同的NB AT 指令。

返回列表
分享:

Copyright © 2019 华体会HTH官方网站股份有限公司.粤ICP备16017609号

粤公网安备44030402003674号

网站地图 | XML地图

微信关注 微信关注
微博
0755-83218588
TOP