三色灯
1) 初始化GPIO设备,GpioInit();
2) 复用GPIO引脚,IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_IO_FUNC_GPIO_10_GPIO);
3) 设置GPIO引脚为输出方向,GpioSetDir(WIFI_IOT_IO_NAME_GPIO_10, WIFI_IOT_GPIO_DIR_OUT);
4) 设置GPIO引脚的输出电平值为1(灯亮),GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 1);
5) 设置GPIO引脚的输出电平值为0(灯灭),GpioSetOutputVal(WIFI_IOT_IO_NAME_GPIO_10, 0);
结果图:
按键
1) 初始化GPIO设备,GpioInit();
2) 复用GPIO引脚,IoSetFunc(WIFI_IOT_IO_NAME_GPIO_8, WIFI_IOT_IO_FUNC_GPIO_8_GPIO);
3) 设置GPIO引脚为输入方向,GpioSetDir(WIFI_IOT_IO_NAME_GPIO_8, WIFI_IOT_GPIO_DIR_IN);
4) 设置GPIO引脚初始电平拉高,IoSetPull(WIFI_IOT_IO_NAME_GPIO_8, WIFI_IOT_IO_PULL_UP);
5) 设置按键事件为边沿触发方式,具体为下降沿触发(按键按下),GpioRegisterIsrFunc(WIFI_IOT_IO_NAME_GPIO_8, WIFI_IOT_INT_TYPE_EDGE, WIFI_IOT_GPIO_EDGE_FALL_LEVEL_LOW, OnButtonPressed, arg);
6) 设置按键事件为边沿触发方式,具体为上升沿触发(按键释放),GpioRegisterIsrFunc(WIFI_IOT_IO_NAME_GPIO_8, WIFI_IOT_INT_TYPE_EDGE, WIFI_IOT_GPIO_EDGE_RISE_LEVEL_HIGH, OnButtonReleased, arg);
按照唐老师的教程:https://harmonyos.51cto.com/p...
结果图:
蜂鸣器
1) 设置CONFIG_PWM_SUPPORT=y,文件./vendor/hisi/hi3861/hi3861/build/config/usr_config.mk;
2) 初始化GPIO设备,GpioInit();
3) 复用GPIO引脚,IoSetFunc(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_IO_FUNC_GPIO_9_PWM0_OUT);
4) 设置GPIO引脚为输出方向,GpioSetDir(WIFI_IOT_IO_NAME_GPIO_9, WIFI_IOT_GPIO_DIR_OUT);
5) 初始化PWM设备,PwmInit(WIFI_IOT_PWM_PORT_PWM0);
6) 输出PWM信号,PwmStart(WIFI_IOT_PWM_PORT_PWM0, 5 1000, 40 1000);
7) 停止PWM信号输出,PwmStop(WIFI_IOT_PWM_PORT_PWM0);
(PS.代码中attr.stack_size = 1024,如果代码中是attr.stack_size = 512,运行会报错;)
作者:HarryP0tter
想了解更多内容,请访问:
51CTO和华为官方战略合作共建的鸿蒙技术社区
https://harmonyos.51cto.com#jssq