【RP2350】香瓜树莓派RP2350之LED

本文最后修改时间:2025年05月10日 01:57

一、本节简介

本节以树莓派pico2开发板为例,举例如何写一个LED驱动加进工程里。

二、实验平台

1、硬件平台

1)树莓派pico2开发板

①树莓派pico2开发板(作为仿真器)

②micro usb数据线

2)电脑

3)香瓜RP2350目标板

2、软件平台

1)VS CODE

三、版权声明

1)作者:甜甜的大香瓜

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

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

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

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

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

opengua.taobao.com

四、实验前提

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

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

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

1)《简单粗暴学树莓派》的《香瓜树莓派RP2350之搭建开发环境(windows)》

2)《简单粗暴学树莓派》的《香瓜树莓派RP2350之新建工程》

五、硬件原理

1、硬件连接

实际只接了4根线,3.3V、GND、CLK、DIO

注意: 给pico2供电时接VSYS,是因为pico2会再经过稳压到3.3v供电给pico2目标板的rp2350。而香瓜使用的板子仿真接口是直接供电给rp2350的,所以需要直连3.3v。

2、原理图

4个led拉高为亮、拉低为灭

六、实验步骤

1、在VS CODE工程文件夹下,添加驱动GUA_Led.c(VS CODE会自动加载)

//**********************************************************************

//name:         GUA_Led.c

//introduce:    led驱动

//author:       opengua     

//email:        897503845@qq.com  

//QQ group:     香瓜嵌入式之树莓派群(512598061)

//shop:         opengua.taobao.com

//changetime:   2025.02.18

//**********************************************************************

#include "pico/stdlib.h"

#include "GUA_Led.h"

//**********************************************************************

//name:         GUA_Led_Init

//introduce:    led初始化

//parameter:    none

//return:       none

//author:       opengua

//email:        897503845@qq.com

//QQ group:     香瓜嵌入式之树莓派群(512598061)

//shop:         opengua.taobao.com

//changetime:   2025.02.18

//**********************************************************************

void GUA_Led_Init(void)

{

    //先拉低,避免灯闪烁一下

    LED1_BAT0_OUT_L;

    LED2_BAT25_OUT_L;

    LED3_BAT75_OUT_L; 

    LED4_BAT100_OUT_L;

    //GPIO22 0~25% 输出

    gpio_set_dir(LED1_BAT0_PIN, GPIO_OUT);

    gpio_set_function(LED1_BAT0_PIN, GPIO_FUNC_SIO);    

   

    //GPIO23 25%~50% 输出

    gpio_set_dir(LED2_BAT25_PIN, GPIO_OUT);

    gpio_set_function(LED2_BAT25_PIN, GPIO_FUNC_SIO);   

    //GPIO24 50~75% 输出  

    gpio_set_dir(LED3_BAT75_PIN, GPIO_OUT);

    gpio_set_function(LED3_BAT75_PIN, GPIO_FUNC_SIO);            

    //GPIO25 75~100% 输出

    gpio_set_dir(LED4_BAT100_PIN, GPIO_OUT);

    gpio_set_function(LED4_BAT100_PIN, GPIO_FUNC_SIO);   

}

2、在VS CODE工程文件夹下,添加驱动GUA_Led.h(VS CODE会自动加载)

//**********************************************************************

//name:         GUA_Led.h

//introduce:    led驱动的头文件

//author:       opengua    

//email:        897503845@qq.com  

//QQ group:     香瓜嵌入式之树莓派群(512598061)

//shop:         opengua.taobao.com

//changetime:   2025.02.18

//**********************************************************************

#ifndef _GUA_LED_H_

#define _GUA_LED_H_

/*********************宏定义************************/

//LED宏

#define LED1_BAT0_PIN      22

#define LED1_BAT0_OUT_H    gpio_put(LED1_BAT0_PIN, true);

#define LED1_BAT0_OUT_L    gpio_put(LED1_BAT0_PIN, false);

#define LED2_BAT25_PIN     23

#define LED2_BAT25_OUT_H   gpio_put(LED2_BAT25_PIN, true);

#define LED2_BAT25_OUT_L   gpio_put(LED2_BAT25_PIN, false);

#define LED3_BAT75_PIN     24

#define LED3_BAT75_OUT_H   gpio_put(LED3_BAT75_PIN, true);

#define LED3_BAT75_OUT_L   gpio_put(LED3_BAT75_PIN, false);

#define LED4_BAT100_PIN    25

#define LED4_BAT100_OUT_H  gpio_put(LED4_BAT100_PIN, true);

#define LED4_BAT100_OUT_L  gpio_put(LED4_BAT100_PIN, false);

/*********************外部函数声明************************/

extern void GUA_Led_Init(void);

#endif

3、添加对应驱动文件名称

4、在应用层中调用

1)添加驱动头文件(main.c中)

#include "GUA_Led.h"

2)添加驱动初始化代码(main.c的main函数中)

    //初始化LED

    GUA_Led_Init();

3)添加测试代码(main.c的main函数中)

        //拉高

        LED1_BAT0_OUT_H;

        sleep_ms(1000);

        LED2_BAT25_OUT_H;

        sleep_ms(1000);

        LED3_BAT75_OUT_H;

        sleep_ms(1000);

        LED4_BAT100_OUT_H; 

        sleep_ms(1000);

        //拉低

        LED1_BAT0_OUT_L;

        sleep_ms(1000);

        LED2_BAT25_OUT_L;

        sleep_ms(1000);

        LED3_BAT75_OUT_L;

        sleep_ms(1000);

        LED4_BAT100_OUT_L; 

        sleep_ms(1000);

七、实验结果

编译并仿真,全速运行下可看到每隔1秒从LED1亮到LED4,再从LED1灭到LED4。

因此实验成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜甜的大香瓜

谢谢你的支持^_^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值