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引脚的值。
对,就是这么简单。
至于编译烧写的步骤请参考搭建开发环境的步骤。
下篇博文将介绍如何创建自己的工程文件夹。