> 文档中心 > Raspberry-Pi-PICO系列--第六篇 点亮第一个LED

Raspberry-Pi-PICO系列--第六篇 点亮第一个LED


一、前言

        前面的章节中我们已经介绍了多个开发环境的搭建过程,从本篇博文开始我们将从SDK的角度配合示例代码着重讲解代码开发的细节。

二、准备

那我们就从blink工程开始,首先我们来看一下blink文件夹下面的内容

$tree.├── CMakeLists.txt└── blink.c0 directories, 2 files

CMakeLists.txt文件是cmake编译所需要的文件,通过此类文件cmake工具才能知道需要编译哪些文件,编译参数是什么,依赖文件是哪些。

add_executable(blink blink.c )# pull in common dependenciestarget_link_libraries(blink pico_stdlib)# create map/bin/hex file etc.pico_add_extra_outputs(blink)# add url via pico_set_program_urlexample_auto_set_url(blink)

        add_executable告诉cmake我们最终需要的可执行文件的名字是blink,它依赖blink.c源码文件;

        target_link_libraries告诉cmake最终的blink需要链接pico_stdlib库文件;

        pico_add_extra_outpus告诉cmake需要生成一些额外的文件,包括map/bin/hex文件以及blink.uf2文件 ;

三、代码分析

        下面我们来看一下blink.c代码        

/** * Copyright (c) 2020 Raspberry Pi (Trading) Ltd. * * SPDX-License-Identifier: BSD-3-Clause */#include "pico/stdlib.h"int main() {#ifndef PICO_DEFAULT_LED_PIN#warning blink example requires a board with a regular LED#else    const uint LED_PIN = PICO_DEFAULT_LED_PIN;    gpio_init(LED_PIN);    gpio_set_dir(LED_PIN, GPIO_OUT);    while (true) { gpio_put(LED_PIN, 1); sleep_ms(250); gpio_put(LED_PIN, 0); sleep_ms(250);    }#endif}

        该源码文件中只包含了一个pico/stdlib.h头文件,并且只有一个main函数,无入参和返回值。

        LED_PIN初始化为板载的LED的引脚号,默认是pin25.

        gpio_init初始化此IO,gpio_set_dir设置此IO为输出,gpio_put则设置IO引脚的值。

对,就是这么简单。

至于编译烧写的步骤请参考搭建开发环境的步骤。

下篇博文将介绍如何创建自己的工程文件夹。