【开发板试用报告】学习GPIO编程

HarryP0tter
发布于 2020-11-3 20:54
浏览
2收藏

 

  • 三色灯

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);

结果图:

 

【开发板试用报告】学习GPIO编程-鸿蒙开发者社区

  • 按键

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/posts/1512

结果图:

   【开发板试用报告】学习GPIO编程-鸿蒙开发者社区

  • 蜂鸣器

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,运行会报错;)

 

分类
标签
已于2020-11-3 20:54:42修改
收藏 2
回复
举报
回复
    相关推荐