全志R128应用开发案例—点亮一颗LED灯

点亮一颗 led 灯案例代码
首先我们搭建电路
引脚
led
pa18
红色 led
pa13
绿色 led
pa12
黄色 led
载入方案
我们使用的开发板是 r128-devkit,需要开发 c906 核心的应用程序,所以载入方案选择r128s2_module_c906
$ source envsetup.sh $ lunch_rtos 1
勾选 gpio 驱动mrtos_menuconfig 找到下列驱动
drivers options --- > soc related device drivers --- > gpio devices --- > [*] enable gpio driver [*] enbale gpio hal apis test command
编写程序打开你喜欢的编辑器,修改文件:lichee/rtos/projects/r128s2/module_c906/src/main.c
引入头文件#include
使用 gpio 配置引脚配置 gpio 的上下拉状态使用 hal_gpio_set_pull(gpio_pin_t pin, gpio_pull_status_t pull); 来设置。这里我们设置 pa18 引脚为默认上拉状态。
hal_gpio_set_pull(gpioa(18), gpio_pull_up);配置 gpio 输入输出模式使用 hal_gpio_set_direction(gpio_pin_t pin, gpio_direction_t direction); 来设置 gpio 的输入输出模式,这里配置为输出模式。
hal_gpio_set_direction(gpioa(18), gpio_direction_output);配置 gpio 的 mux 功能gpio 通常有多种功能,需要配置 mux 选择需要的功能,使用 hal_gpio_pinmux_set_function(gpio_pin_t pin, gpio_muxsel_t function_index); 来设置 gpio 的复用功能,这里配置为gpio 输出模式(gpio_muxsel_out)
hal_gpio_pinmux_set_function(gpioa(18), gpio_muxsel_out);配置 gpio 的电平使用 hal_gpio_set_data(gpio_pin_t pin, gpio_data_t data); 来配置 gpio 的电平,这里配置 pa18 为高电平点亮 led
hal_gpio_set_data(gpioa(18), gpio_data_high);完整的配置 gpiohal_gpio_set_pull(gpioa(18), gpio_pull_up); // 配置 gpio 的上下拉状态hal_gpio_set_direction(gpioa(18), gpio_direction_output); // 配置 gpio 输入输出模式hal_gpio_pinmux_set_function(gpioa(18), gpio_muxsel_out); // 配置 gpio 的 mux 功能hal_gpio_set_data(gpioa(18), gpio_data_high); // 配置 gpio 的电平以此类推,我们同时配置 pa18, pa13,pa12 的 gpio
hal_gpio_set_pull(gpioa(18), gpio_pull_up);hal_gpio_set_direction(gpioa(18), gpio_direction_output);hal_gpio_pinmux_set_function(gpioa(18), gpio_muxsel_out);hal_gpio_set_data(gpioa(18), gpio_data_high);hal_gpio_set_pull(gpioa(13), gpio_pull_up);hal_gpio_set_direction(gpioa(13), gpio_direction_output);hal_gpio_pinmux_set_function(gpioa(13), gpio_muxsel_out);hal_gpio_set_data(gpioa(13), gpio_data_high);hal_gpio_set_pull(gpioa(12), gpio_pull_up);hal_gpio_set_direction(gpioa(12), gpio_direction_output);hal_gpio_pinmux_set_function(gpioa(12), gpio_muxsel_out);hal_gpio_set_data(gpioa(12), gpio_data_high);结果编译固件后烧录,可以看到三色 led 灯同时亮起。
流水灯为了实现流水灯,我们先实现一个 sleep 函数
static inline int msleep(int ms) { vtaskdelay(ms / porttick_rate_ms); }然后实现流水灯逻辑即可,之前已经设置过的gpio状态不需要重复设置。
while (1) { hal_gpio_set_data(gpioa(18), gpio_data_high); hal_gpio_set_data(gpioa(13), gpio_data_low); hal_gpio_set_data(gpioa(12), gpio_data_low); msleep(100); hal_gpio_set_data(gpioa(18), gpio_data_low); hal_gpio_set_data(gpioa(13), gpio_data_high); hal_gpio_set_data(gpioa(12), gpio_data_low); msleep(100); hal_gpio_set_data(gpioa(18), gpio_data_low); hal_gpio_set_data(gpioa(13), gpio_data_low); hal_gpio_set_data(gpioa(12), gpio_data_high); msleep(100);}

关于边缘计算技术的市场现状与发展趋势
AEye的iDar传感器第一款在硬件层面上结合激光雷达和相机数据的产品
显存是什么
多核处理器电源管理之电源效率高效提升方法
新一代安卓旗舰芯片接连问世,终于有叫板苹果的实力了?
全志R128应用开发案例—点亮一颗LED灯
PyTorch教程-6.1. 层和模块
小米6现,魅族Pro7要出,三星S8不远,荣耀9快了,选谁?
基于上海华力28纳米低功耗工艺平台处理芯片成功量产
I²C协议基本概念和数据传输
对超声波流量计计量性能影响因素的控制措施
华为数字能源刘大伟:充电度电成本是引领高质量充电基础设施可持续发展的科学投资评估方法
请问一下5v2a电源芯片怎样选?
红米K40系列发布,售价1999元至3699元
友尚推出 INTEL、TI和MPS 的平板电脑设计参考方案
全球Q2可穿戴设备出货量同比增长5.5%,小米华为挺进前5
中美日韩芬齐发力 6G真正到来预计将在2030年
市场上普遍存在的行程开关型号
***是什么东西 ***的难度在哪里
电子假负载电路原理