单片机学习小组
登录
直播中
李星童
7年用户
974经验值
私信
关注
如何实现单片机led灯闪烁?
开启该帖子的消息推送
单片机
如何实现
单片机
led灯闪烁?
回帖
(1)
杨丽
2022-1-19 09:45:55
目录结构
先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
本例程:在app下新增业务led,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下:
业务代码。
新建./applications/sample/wifi-iot/app/led下的led.c文件,在led.c中新建业务入口函数led,并实现业务逻辑。并在代码最下方,使用HarmonyOS启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中)
BUILD.gn为编译脚本
led.c为业务逻辑代码所在文件
led.c
#include
#include
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
#define LED_ON_TIME_US 2000000
#define LED_OFF_TIME_US 1000000
static void Led(void)
{
//GPIO引脚初始化
GpioInit();
//设置管脚功能为GPIO
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);
//设置GPIO引脚方向为输出
GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
while (1) {
//设置GPIO09输出为低电平
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
//打印输出日志
printf("[DEMO] LED on.n");
//延时一定时间,即亮灯的持续时间
usleep(LED_ON_TIME_US);
//设置GPIO09输出为高电平
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
//打印输出日志
printf("[DEMO] LED off.n");
//延时一定时间,即灭灯的持续时间
usleep(LED_OFF_TIME_US);
}
}
SYS_RUN(Led);
BUILD.gn(app/BUILD.gn)
static_library
“bahuyang”:是生成静态库名称,可随意更改
“led.c”:代码文件
BUILD.gn()
# Copyright (c) 2020 Huawei Device Co., Ltd.
将"startup"注释,运行我们自己的文件
“led”:工程目录
bahuyang:静态库文件
编译烧录
编译
我在以前的文章里,详细讲解了怎样编译。大家可以回头看看。
我们进入终端面板下,在对应工程目录下,输入python build.py wifiiot
进行编译,当出现编译成功时,就代表编译完成。
烧录
利用HiBurn工具进行烧录,我在以前的文章里,详细讲过。
选定文件后,点击connect,按下开发板复位按钮,进行烧录。
烧录完成后,再次按下复位按键。
观察现象
选择波特率115200,连接相应串口,观看串口调试助手的结果。
LED灯实现闪烁。
目录结构
先在./applications/sample/wifi-iot/app路径下新建一个目录(或一套目录结构),用于存放业务源码文件。
本例程:在app下新增业务led,其中hello_world.c为业务代码,BUILD.gn为编译脚本,具体规划目录结构如下:
业务代码。
新建./applications/sample/wifi-iot/app/led下的led.c文件,在led.c中新建业务入口函数led,并实现业务逻辑。并在代码最下方,使用HarmonyOS启动恢复模块接口SYS_RUN()启动业务。(SYS_RUN定义在ohos_init.h文件中)
BUILD.gn为编译脚本
led.c为业务逻辑代码所在文件
led.c
#include
#include
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"
#define LED_ON_TIME_US 2000000
#define LED_OFF_TIME_US 1000000
static void Led(void)
{
//GPIO引脚初始化
GpioInit();
//设置管脚功能为GPIO
IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_GPIO);
//设置GPIO引脚方向为输出
GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
while (1) {
//设置GPIO09输出为低电平
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 0);
//打印输出日志
printf("[DEMO] LED on.n");
//延时一定时间,即亮灯的持续时间
usleep(LED_ON_TIME_US);
//设置GPIO09输出为高电平
GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_9, 1);
//打印输出日志
printf("[DEMO] LED off.n");
//延时一定时间,即灭灯的持续时间
usleep(LED_OFF_TIME_US);
}
}
SYS_RUN(Led);
BUILD.gn(app/BUILD.gn)
static_library
“bahuyang”:是生成静态库名称,可随意更改
“led.c”:代码文件
BUILD.gn()
# Copyright (c) 2020 Huawei Device Co., Ltd.
将"startup"注释,运行我们自己的文件
“led”:工程目录
bahuyang:静态库文件
编译烧录
编译
我在以前的文章里,详细讲解了怎样编译。大家可以回头看看。
我们进入终端面板下,在对应工程目录下,输入python build.py wifiiot
进行编译,当出现编译成功时,就代表编译完成。
烧录
利用HiBurn工具进行烧录,我在以前的文章里,详细讲过。
选定文件后,点击connect,按下开发板复位按钮,进行烧录。
烧录完成后,再次按下复位按键。
观察现象
选择波特率115200,连接相应串口,观看串口调试助手的结果。
LED灯实现闪烁。
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机
如何利用51
单片机
实现
LED
灯
闪烁
?
2021-10-19
1579
如何利用51
单片机
实现
LED
灯
闪烁
?
2021-10-19
2311
如何利用51
单片机
实现
LED
灯
闪烁
?
2021-10-18
1388
如何利用AVR
单片机
实现
LED
灯
闪烁
?
2021-10-29
2103
请问
单片机
最小系统如何
实现
LED
灯
闪烁
?
2021-09-27
978
51
单片机
如何让
led
灯
闪烁
?
2023-11-01
255
如何使得
单片机
的
LED
灯
闪烁
又不影响主程序运行?
2023-11-06
215
如何利用51
单片机
实现
led
灯
的点亮?
2021-10-26
3026
大神教你如何让你的
LED
灯
闪烁
起来
2021-11-25
2487
如何去
实现
一种基于51
单片机
点亮
led
灯
的设计
2021-09-28
1014
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分