这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【墨水屏电子书】过程贴-实现LED灯的控制

共2条 1/1 1 跳转至

【墨水屏电子书】过程贴-实现LED灯的控制

高工
2024-08-06 17:43:11     打赏

        接下来我们将依据学习资料中的工程进行本次开发,本章节要实现的功能是编程实现LED灯的闪烁,作为单一功能,本次不实现呼吸灯,所以就相当于是点灯了。不要看不起点灯,实际上这个看似最简单的操作才是万事的开始,做容易验证你的基础程序行不行,所以对于一个不熟悉的单片机或者开发板,了解完开发环境后就是要实现点灯。

        我们看一下板载LED的硬件原理部分:

image.png

        可以看到,使用的是GPIO25引脚;

        我们来到工程中看一下,老师对相关的引脚进行了初始化封装,不过我们还是要深入了解一下,

        有关LED的操作如下:

#define PICO_LED_PIN 25

void LED_init(){
    gpio_init(PICO_LED_PIN);
    gpio_set_dir(PICO_LED_PIN, GPIO_OUT);
}
void LED_ON(){
    gpio_put(PICO_LED_PIN, 0);
}

void LED_OFF(){
    gpio_put(PICO_LED_PIN, 1);
}

        进一步探索SDK中关于引脚配置的说明,类似:

static inline void gpio_set_dir(uint gpio, bool out) {
    uint32_t mask = 1ul << gpio;
    if (out)
        gpio_set_dir_out_masked(mask);
    else
        gpio_set_dir_in_masked(mask);
}

        发现该SDK中的配置相对常用的单片机的配置内容少了很多,也可以说是明确了很多,这方面是不是也是树莓派开发便捷的关键所在呢?

        到这里我们就基本上了解了有关GPIO的相关操作,实际上模式都是超不多,先初始化,然后就可以操作了,接下来我们编写实现500ms间隔的LED闪烁:

while (true) {                                             
        LED_ON();
        MY_DEV_Delay_ms(500);        
        LED_OFF();
        MY_DEV_Delay_ms(500);            
    }

        编译下载注意一下,我们进入下载模式后,只要编译后就自动直接往模拟盘(PRI-RP2)中复制uf2文件,也就是说编译完直接就下载了,需要修改一下批文件(axf2uf2.bat),与模拟盘对应:

image.png

        效果如下:

image.png






专家
2024-08-06 19:46:22     打赏
2楼

感谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]