【RP2040】香瓜树莓派RP2040之LED

news2025/1/12 12:01:16

本文最后修改时间:2022年09月05日 11:02

一、本节简介

本节介绍如何编写一个LED驱动。

二、实验平台

1、硬件平台

1)树莓派pico开发板

①树莓派pico开发板*2

②micro usb数据线*2

2)电脑

2、软件平台

1)VS CODE

三、版权声明

1)作者:甜甜的大香瓜

2)声明:喝水不忘挖井人,转载请注明出处。

3)纠错/业务合作:897503845@qq.com

4)香瓜嵌入式之树莓派群:512598061

5)本文出处:原创连载资料《简单粗暴学树莓派》

6)完整开源资料下载地址(电脑端打开):

opengua.taobao.com

四、实验前提

1、在进行本文步骤前,请先阅读以下章节:

1)《简单粗暴学树莓派》的“第一章至第二章”章节

2、在进行本文步骤前,请先实现以下章节:

1)《简单粗暴学树莓派》的《香瓜树莓派pico之新建工程》章节。

五、基础知识

暂无

六、硬件原理

引脚号

功能

25

LED

七、实验步骤

1、在VS CODE工程的GUA_CODE文件夹下,添加驱动GUA_Led.c

#include "pico/stdlib.h"

#include "GUA_Led.h"

void GUA_Led_Set(uint8_t nGUA_led_set)

{

    //set led 1

    if(nGUA_led_set == GUA_LED_SET_HIGH)

    {

        gpio_put(GUA_LED_PIN, 1);

    }

    //set led 0

    else

    {

        gpio_put(GUA_LED_PIN, 0);       

    }

}

void GUA_Led_Init(void)

{

    gpio_init(GUA_LED_PIN);

    gpio_set_dir(GUA_LED_PIN, GPIO_OUT);

}

2、在VS CODE工程的GUA_CODE文件夹下,添加驱动头文件GUA_Led.h

#ifndef _GUA_LED_H_

#define _GUA_LED_H_

#define GUA_LED_PIN         25

#define GUA_LED_SET_HIGH    1

#define GUA_LED_SET_LOW     0

extern void GUA_Led_Set(uint8_t nGUA_led_set);

extern void GUA_Led_Init(void);

#endif

3、将新写的驱动文件新添加到可执行

4、修改main

#include "pico/stdlib.h"

#include "GUA_Led.h"

int main()

{

    GUA_Led_Init();

    while (true)

    {

        GUA_Led_Set(GUA_LED_SET_HIGH);

        sleep_ms(1000);

        GUA_Led_Set(GUA_LED_SET_LOW);

        sleep_ms(1000);       

    }

}

七、实验结果

编译并仿真,全速运行下可看到LED在每隔1秒变换一次亮灭状态。

因此实验成功。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ppt转pdf免费的工具哪个好用?免费PPT转换为PDF的方法分享

在我们的工作和学习中,将PPT文件转换为PDF格式对于分享和储存具有重要意义。PPT文件是一种常用的演示工具,用于展示和传达信息。然而,PPT文件在不同的平台和设备上可能存在格式兼容性的问题,而且文件大小较大,不方便共…

C#__使用Type类反射数据的基本用法

// 简单介绍 // 元数据(metadata):与程序及其类型有关的数据。 // 反射:一个运行的程序查看本身元数据或其他程序集中的元数据的行为 // Assembly类:允许访问给定程序集的元数据,包含了可以加载和执行程序…

爬虫IP时效问题:优化爬虫IP使用效果实用技巧

目录 1. 使用稳定的代理IP服务提供商: 2. 定期检测代理IP的可用性: 3. 配置合理的代理IP切换策略: 4. 使用代理IP池: 5. 考虑代理IP的地理位置和速度: 6. 设置合理的请求间隔和并发量: 总结 在爬虫过…

Max Compute 操作记录

编译 max compute-spark git clone https://github.com/aliyun/MaxCompute-Spark cd spark-3.x mvn clean package -DskipTests在 target 目录下生成 以下两个文件。 spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar spark-examples_2.12-1.0.0-SNAPSHOT.jar2. DataWorks 上传…

计组 | 中断是什么?中断流程有哪些?什么情况下响应中断?

前言 记录一些计组相关联的题集与知识点,方便记忆与理解。 中断 总结 IBM370系统: IBM370计算机将中断类分为机器校验、访管、程序性、外部、输入/输出、重新启动6类。 中断响应优先级级别最低的是 重新启动中断 中断响应优先级级别最高的中断类型是…

ARouter基本使用及原理分析

作者:愿天深海 ARouter简介 ARouter是阿里开源的一款帮助Android App进行组件化改造的路由框架,是Android平台中对页面和服务提供路由功能的中间件,可以实现在不同模块的Activity之间跳转。 ARouter的特点是灵活性强还能帮助项目解耦。 除…

SpringCloud Gateway:status: 503 error: Service Unavailable

使用SpringCloud Gateway路由请求时,出现如下错误 yml配置如下: 可能的一种原因是:yml配置了gateway.discovery.locator.enabledtrue,此时gateway会使用负载均衡模式路由请求,但是SpringCloud Alibaba删除了Ribbon的…

创建远程仓库以及分支

1、 创建远程仓库 这里有两种方式 1.1 利用git的插件有Gitee、GitHub。 来到 GitHub 中发现已经帮我们创建好了 gitTest 的远程仓库。 1.2 通过Push的方式推送本地库到远程库 这种方式需要提前创建好仓库。 右键点击项目,可以将当前分支的内容 push 到 GitHub 的远…

探索区块链世界:去中心化应用(DApp)的崭新前景

随着科技的不断发展,区块链技术逐渐引领着数字时代的潮流。在这个充满创新和变革的领域中,去中心化应用(DApp)成为了备受瞩目的焦点。DApp 不仅改变了传统应用程序的范式,还在金融、社交、游戏等多个领域展现出了广阔的…

《内网穿透》无需公网IP,公网SSH远程访问家中的树莓派

文章目录 前言 如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar内网穿透4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地…

Python 实现性能自动化测试竟然如此简单

一、思考 ❓❔ 1.什么是性能自动化测试? 性能 系统负载能力超负荷运行下的稳定性系统瓶颈自动化测试 使用程序代替手工提升测试效率 性能自动化 使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数,统计系统负载能力生成报告 2.Pytho…

pyG学习笔记

pyG学习笔记 一、Mac M1安装pyG 系统版本 Ventura 13.5 13.5(22G74)方案一运行时报错:OMP: Error #15: Initializing libomp.dylib, but found libomp.dylib already invscode运行代码报错ERROR: CONDA_BUILD_SYSROOT or SDKROOT has to be s…

k8s集群生产环境的问题处理

2 k8s上的服务均无法访问 执行命令kubectl get pods -ALL,k8s集群中的服务均是running状态 1 kuboard 网页无法访问 kuboard无法通过浏览器访问,但是查看端口是被占用的

[Vue]解决npm run dev报错node:internal/modules/cjs/loader:1031 throw err;

解决: 有2中方法,建议先尝试第一种,不行再第二种 第一种: 重新安装依赖环境 删除项目的node_modules文件夹,重新执行 # 安装依赖环境 npm install# 运行 npm run dev 我只用了第一种方法就可以了 ,第二种方法从别的博主那看到…

OLED透明屏轻量化设计:提升便携性与用户体验的新方向

随着科技的不断进步,OLED透明屏作为一种新兴的显示技术正逐渐走入人们的视野。除了在视觉效果上的优势,OLED透明屏在重量方面的设计也备受关注。 对此,尼伽将深入探讨OLED透明屏轻量化设计的重要性、策略以及应用案例,希望看后对…

使用AnimeGAN2和anime-segmentation生成自己的漫画头像

今天我们来介绍一下怎么利用GAN生成属于的自己的漫画风头像。所需要用的生成模型为AnimeGAN2 🤡AnimeGAN2漫画风生成 🍎 使用Huggingface Space的AnimeGAN2 WebUI 网址链接:AnimeGANv2 - a Hugging Face Space by akhaliq 网页界面如下&am…

医疗机构过等保选择哪款堡垒机好?为什么?

根据《医疗卫生机构网络安全管理办法》、《基本医疗卫生与健康促进法》、《网络安全法》等法规,医疗机构必须按照规定进行等保测评。那你知道医疗机构过等保选择哪款堡垒机好?为什么?今天我们就来一起聊聊。 医疗机构过等保选择哪款堡垒机好…

操作系统-笔记-第二章-线程

目录 二、第二章——【线程】​编辑 1、线程的概念 2、线程的属性 3、线程的实现方式 (1)最简单的线程实现(用户级线程) (2)内核级线程 (3)内核用户(一对一、多对…

【C++】list容器

1.list基本概念 2.list构造函数 #include <iostream> using namespace std;#include<list> //链表list容器构造函数//输出list链表 void printList(const list<int>& L) {for (list<int>::const_iterator it L.begin(); it ! L.end(); it){cout &…