K210基础实验—点亮RGB灯

前言

学习K210的高速GPIOHS,点亮RGB灯
在这里插入图片描述

一、硬件连接

RGB灯的R连接IO6, G连接IO7, B连接IO8
在这里插入图片描述

二、在src目录下新建文件夹,名字叫做gpiohs_rgb_my

在这里插入图片描述

三、在gpiohs_rgb_my目录下再新建两个文件,分别是main.c和pin_config.h

在这里插入图片描述

四、在main.c文件中写入如下代码

#include "pin_config.h"
#include "gpiohs.h"
#include "sleep.h"
//硬件引脚初始化,绑定GPIO口
void hardware_init(void)
{// fpioa映射fpioa_set_function(PIN_RGB_R, FUNC_RGB_R);fpioa_set_function(PIN_RGB_G, FUNC_RGB_G);fpioa_set_function(PIN_RGB_B, FUNC_RGB_B);}//关灯
void rgb_all_off(void)
{gpiohs_set_pin(RGB_R_GPIONUM, GPIO_PV_HIGH);gpiohs_set_pin(RGB_G_GPIONUM, GPIO_PV_HIGH);gpiohs_set_pin(RGB_B_GPIONUM, GPIO_PV_HIGH);
}void init_rgb(void)
{// 设置RGB灯的GPIO模式为输出gpiohs_set_drive_mode(RGB_R_GPIONUM, GPIO_DM_OUTPUT);gpiohs_set_drive_mode(RGB_G_GPIONUM, GPIO_DM_OUTPUT);gpiohs_set_drive_mode(RGB_B_GPIONUM, GPIO_DM_OUTPUT);// 关闭RGB灯rgb_all_off();
}int main(void)
{// RGB灯状态,0=红灯亮,1=绿灯亮,2=蓝灯亮int state = 0;// 硬件引脚初始化hardware_init();// 初始化RGB灯init_rgb();while(1){rgb_all_off();   // 先关闭RGB灯// 根据state的值点亮不同颜色的灯gpiohs_set_pin(state, GPIO_PV_LOW);msleep(500);  //延时500msstate++;state = state % 3;}return 0;
}

五、在pin_config.h文件中写入如下代码

#ifndef _PIN_CONFIG_H_
#define _PIN_CONFIG_H_/*****************************HEAR-FILE************************************/
#include "fpioa.h"/*****************************HARDWARE-PIN*********************************/
// 硬件IO口,与原理图对应
#define PIN_RGB_R             (6)
#define PIN_RGB_G             (7)
#define PIN_RGB_B             (8)
/*****************************SOFTWARE-GPIO********************************/
// 软件GPIO口,与程序对应
#define RGB_R_GPIONUM          (0)
#define RGB_G_GPIONUM          (1)
#define RGB_B_GPIONUM          (2)/*****************************FUNC-GPIO************************************/
// GPIO口的功能,绑定到硬件IO口
#define FUNC_RGB_R             (FUNC_GPIOHS0 + RGB_R_GPIONUM)
#define FUNC_RGB_G             (FUNC_GPIOHS0 + RGB_G_GPIONUM)
#define FUNC_RGB_B             (FUNC_GPIOHS0 + RGB_B_GPIONUM)#endif

六、编译成功

在这里插入图片描述

七、程序烧录

在这里插入图片描述

八、现象正常,每隔500ms变一次颜色

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/479615.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Discuz! X收藏列表页调用封面图片详细教程

Discuz! X默认收藏列表不显示封面图,我们接到客户需求要开发封面图功能在帖子列表,这是我们整理好的详细教程,下载即可查看 修改后,显示封面的收藏列表截图: 详细开发教程下载地址:Discuz! X收藏列表页调用…

2024-02-19(Flume,DataX)

1.flume中拦截器的作用:个人认为就是修改或者删除事件中的信息(处理一下事件)。 2.一些拦截器 Host Interceptor,Timestamp Interceptor,Static Interceptor,UUID Interceptor,Search and Rep…

浙大恩特客户资源管理系统 FollowAction SQL注入漏洞复现

0x01 产品简介 浙大恩特客户资源管理系统是一款针对企业客户资源管理的软件产品。该系统旨在帮助企业高效地管理和利用客户资源,提升销售和市场营销的效果。 0x02 漏洞概述 浙大恩特客户资源管理系统 FollowAction 接口处存在SQL注入漏洞,未经身份认证的攻击者可以利用该漏…

【知识整理】简述 Code Review - 代码审查

一、Code Review 简述 为保证上线代码质量,经研究决定0412版本起实行Code Review 。具体操作方式为组织 review 会。提出的优化点需立即执行更改,Review会要求给出调整方式方法。同时为了确保项目或迭代版本的时间,请各开发同学提前做好时间…

【python】linux系统python报错“ssl module in Python is not available”

一、问题现象 1.1 执行pip命令报错 pip安装时遇到openssl问题,没办法安装第三方库 “WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. ” 1.2 导入import ssl 报错 直接执行python&…

每天一个知识点 - 了解java泛型机制

泛型的本质 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方…

5款白嫖党必备的ai写作神器,你都知道吗? #学习#学习方法#媒体

你是否因为写作困顿而感到沮丧?是不是希望能够找到一个能给你提供无限灵感和提高创作效率的利器?AI写作助手就是你的绝佳选择!现在我向大家推荐几款好用的AI写作助手,它们将让你的创作之旅更加流畅、富有创意。 1.写作兔 这是一…

TypeScript(三):TypeScript面向对象

TypeScript面向对象 类的定义 与JS不同的是,成员属性需要在前面进行提前声明 class Person{//需要在前面对成员变量进行声明name: string//声明的时候,可以对值进行初始化,初始化可以带有类型注解,也可以省略age 18//construc…

常见面试题:TCP的四次挥手和TCP的滑动窗口

说一说 TCP 的四次挥手。 挥手即终止 TCP 连接,所谓的四次挥手就是指断开一个 TCP 连接时。需要客户端和服务端总共发出四个包,已确认连接的断开在 socket 编程中,这一过程由客户端或服务端任意一方执行 close 来触发。这里我们假设由客户端…

Linux:sed进阶(12)

Linux:shell脚本:基础使用(5)《正则表达式-sed工具》_linux脚本表达式s-CSDN博客https://blog.csdn.net/w14768855/article/details/132347574?ops_request_misc%257B%2522request%255Fid%2522%253A%252217084222871680019707523…

MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案

项目场景 有时候,遇到数据库重复数据,需要将数据进行分组,并取出其中一条来展示,这时就需要用到group by语句。 但是,如果mysql是高版本,当执行group by时,select的字段不属于group by的字段的…

强化学习:仿真环境Gym的安装和测试

接下来进行强化学习方面的研究和学习: 首先是安装学习RL最常用的仿真环境——Gym 推荐安装的Gym版本如下,使用pip命令进行安装: pip install gym0.26.2 pip install pygame2.3.0 环境安装完成后,可以使用下面的测试代码进行测试&…