如何让RT-thread接入机智云来创建一个线程去点亮LED

时间:2018-07-17

GoKit3、USB数据线

软件环境:

mdk5、机智云APP

进入正文

RT-thread接入机智云流程:

1.RT-thread与机智云介绍

2.基于mkd5安装RT-Thread Nano Pack

3.注册机智云开发作者账号(建议注册企业账号)

4.创建新产品

5.定义数据点

6.自动生成MCU代码

7.给自动生成mcu代码移植RGB灯驱动

8.给自动生成mcu代码移植RT-thread,并烧写进gokit(重点)

9.机智云APP控制gokit

1.RT-thread与机智云介绍

使用RT-thread接入机智云的好处:

1.机智云mcu SDK没有嵌入式操作系统的概念,只有前后台系统,直接操作裸机,RT-thread刚好弥补这一空白,使得机智云mcu SDK也可以多任务/线程并行运行程序,并提供一系列任务调度机制、同步机制、任务间通信机制,使得程序更丰富多彩,功能更强。

2.RT-thread具备非常优异的实时性、稳定性、可剪裁性,当进行配置时,内核体积可以到 3k ROM 占用、1k RAM 占用。机智云GoKit硬件条件使用RT-thread无压力。

3.RT-thread移植难度低,习惯使用机智云mcu SDK的开发者也容易上手使用。

2.基于mkd5安装RT-ThreadNano Pack

3.注册机智云开发作者账号

4.创建新产品

5.根据产品需求,分析硬件开发需求,定义数据点

本文以点亮一盏灯为例,数据点分析如下:

6.自动生成mcu代码

在机智云自助开发平台自动生成MCU代码包  并(请注意,硬件平台需与板卡型号保持一致,如不一致,则选择“其他方案”)

7.给自动生成mcu代码移植RGB灯驱动

从MCU SDK文件内容目录结构(上图)看到,自动生成MCU代码里面没有rgb_led灯驱动,我们可以去机智云,开发者中心,中心,去参考其他含rgb_led灯驱动的项目,把里面的rgb_led灯驱动提取出来移植,以移植微信宠物屋rgb_led灯驱动为例。

我们把刚刚的微信宠物项目解压,进入如下目录,可以看到有个rgb_led灯驱动文件夹,把文件夹复制到自己的自动生成MCU驱动目录里面

回到我们自己MCU代码,在驱动目录里面添加rgb_led驱动文件

在main.c和gizwits_product.c文件加入#include “Hal_rgb_led/Hal_rgb_led.h”

8.给自动生成mcu代码移植RT-thread,并烧写进gokit(重点)

8.1.添加RTOS的kernel文件

8.2.添加kernel文件后,我们可看到工程目录多了”RTOS”的目录,进入rtconfig.h文件,第15行改成宏定义1000,第108行去掉注释

8.3.进入board.c文件,第25行加上#include "STM32f1xx_hal.h",第37行宏定义改成10,第66行到76行去掉注释,并加上HAL_IncTIck();HAL_SYSTICK_IRQHandler();两个函数。

8.4.进入stm32f1xx_it.c文件,注释掉HardFault_Handler()、PendSV_Handler()、SysTick_Handler()这三个函数

8.5.进入main.c文件,第47行加上#include "rtthread.h"

8.6.进入main.c文件,在main函数注释原while(1)大循环,并创建线程

至此,我们便完成了使用RT-Thread来跑机智云逻辑程序,也就实现了RT-thread快速接入机智云。当然我们还可以根据自己实际需求来创建更多线程来跑自己的程序,这里就不一一累述了

8.7.编译程序

通过数据线给gokit烧写移植了RT-thread与RGB驱动的固件进gokit。将stm32底板(左)与功能板(右)与小心翼翼地分离开来,然后stm32底板中间拨键拨到system,插上数据线,即可使用stm32flashloader软件烧写固件。烧写完后,中间拨键拨到flash,功能板与stm32底板合并,再按stm32底板左边的reset,即可正常使用。

上一篇:探讨改变电动汽车市场的氮化镓IC
下一篇:智能控制,物联网WiFi模块+组合模块选型

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料