登录
【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】交通灯
开发板试用精选
2022-11-01
778
分享海报
开发板试用精选
807 文章
88.4w阅读
143粉丝
+关注
描述
本文来源电子发烧友社区,作者:华仔stm32, 帖子地址:
https://bbs.elecfans.com/jishu_2283601_1_1.html
【目的】学习控制GPIO电平的高低,点亮交通灯板上的三个灯。
1、新建工程:
在Hispark目录下新建一个文件夹,把HiHope_WiFi-IoT_Hi3861SPC024 SDK的所有文件复制到这个文件夹下:
2.打开 LiteOS Studio,点击文件->打开文件夹,选择 led_control_demo 文件夹,打开后,工程栏显示如下图所示。
3.在 led_control_demoappdemoinitapp_io_init.c 文件里,app_io_init(hi_void)函数里对 GPIO 10 、11、12进行初始化。GPIO 10 、11、12初始化如下图所:
4.初始化完成后,在 led_control_demoappdemosrc 目录下鼠标右键选择新建文件,新建app_demo_led_control.c 文件,文件如下:(我建议第一次写的同学,不要直接复制,最好自己录一遍,这样对liteos加深印象)。
#include
#include
#include
#include time.h>
#include
#include
#define LED_LIGHT_DELAY_500MS (500*1000)
#define hi_unuse_param(p) ((p) = (p))
#define LED_CONTROL_TASK_SLEEP_20MS (20)
#define LED_CONTROL_TASK_SIZE (1024)
#define LED_CONTROL_TASK_PRIO (28)
hi_u32 g_led_control_id;
hi_void led_control(hi_void)
{
hi_gpio_set_ouput_val(HI_GPIO_IDX_10, HI_GPIO_VALUE1);
hi_udelay(LED_LIGHT_DELAY_500MS);
hi_gpio_set_ouput_val(HI_GPIO_IDX_10, HI_GPIO_VALUE0);
hi_udelay(LED_LIGHT_DELAY_500MS);
hi_gpio_set_ouput_val(HI_GPIO_IDX_12, HI_GPIO_VALUE1);
hi_udelay(LED_LIGHT_DELAY_500MS);
hi_gpio_set_ouput_val(HI_GPIO_IDX_12, HI_GPIO_VALUE0);
hi_udelay(LED_LIGHT_DELAY_500MS);
hi_gpio_set_ouput_val(HI_GPIO_IDX_11, HI_GPIO_VALUE1);
hi_udelay(LED_LIGHT_DELAY_500MS);
hi_gpio_set_ouput_val(HI_GPIO_IDX_11, HI_GPIO_VALUE0);
hi_udelay(LED_LIGHT_DELAY_500MS);
}
/* 方法一 */
hi_void app_demo_led_control(hi_void)
{
hi_watchdog_disable();
for(;;){
led_control();
}
}
hi_void *led_control_demo(hi_void *param)
{
hi_u32 ret;
hi_unuse_param(param);
for (;;)
{
led_control();
/* 释放CPU资源给其他任务使用 */
hi_sleep(LED_CONTROL_TASK_SLEEP_20MS);
}
ret = hi_task_delete(g_led_control_id);
if(ret != HI_ERR_SUCCESS){
printf("Faile to delete led control demo taskrn");
return HI_ERR_FAILURE;
}
return HI_ERR_SUCCESS;
}
hi_u32 app_demo_led_control_task(hi_void)
{
hi_u32 ret;
hi_task_attr led_control_attr = {0};
led_control_attr.stack_size = LED_CONTROL_TASK_SIZE;
led_control_attr.task_prio = LED_CONTROL_TASK_PRIO;
led_control_attr.task_name = (hi_char*)"app demo led control";
ret = hi_task_create(&g_led_control_id, &led_control_attr, led_control_demo, HI_NULL);
if(ret != HI_ERR_SUCCESS){
printf("Failed to create led control demorn");
return HI_ERR_FAILURE;
}
printf("Succesed to create led control demorn");
return HI_ERR_SUCCESS;
}
复制代码
5、函数编写完成后,在程序入口 app_main.c 文件中 app_main 函数里调用 app_demo_led_control_task()函数。实现控制红色 LED 闪烁。具体代码实现如下:
extern hi_u32 app_demo_led_control_task(hi_void);
app_demo_led_control_task();
复制代码
6、编译烧录编译前需要在 LiteOS Stduio->工程配置->组件配置->Third Party library 选项中勾选掉 MQTT support并点击确认。其他编译下载烧录步骤可以参考目录第 1.2.5 节运行第一个例程序 Hello world。配置界面如下图所示。
7、下载设置:
8、下载后成功后,重启
开发板
就可以看到交通灯交替闪烁了。
打开APP阅读更多精彩内容
点击阅读全文
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
wi-fi
HarmonyOS
HiSpark
【
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
试用
】智能门禁系统
2020-09-25
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连
连载
】开箱报告
2020-09-29
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
】群英荟萃,Hi3861开发板开箱大盘点
2020-10-27
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
试用
】基于
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
的温控面板
2020-10-29
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】2-从DEMO中学习代码与控制
2020-11-07
0
[
HarmonyOS
HiSpark
Wi-Fi
IoT
HarmonyOS
智能家居
套件
]
试用
报告
2020-11-16
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】开发
套件
初探
2020-11-22
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】CHAPTER 1 ---- 开箱报告
2020-12-31
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】
交通灯
2022-05-29
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
智能家居
套件
体验 】
HarmonyOS
HiSpark
Wi-Fi
IoT
介绍+第一印象
2022-06-25
0
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】播放音乐
2022-10-31
1008
【
HarmonyOS
HiSpark
Wi-Fi
IoT
套件
试用
连载
】wifi连上不网
2022-10-31
953
全部
0
条评论
快来发表一下你的评论吧 !
发送
登录/注册
×
20
完善资料,
赚取积分