Raspberry-Pi-PICO系列--第六篇 点亮第一个LED
-- 系列 第一个 LED Pi 点亮 Raspberry Pico
2023-09-11 14:21:44 时间
一、前言
前面的章节中我们已经介绍了多个开发环境的搭建过程,从本篇博文开始我们将从SDK的角度配合示例代码着重讲解代码开发的细节。
二、准备
那我们就从blink工程开始,首先我们来看一下blink文件夹下面的内容
$tree
.
├── CMakeLists.txt
└── blink.c
0 directories, 2 files
CMakeLists.txt文件是cmake编译所需要的文件,通过此类文件cmake工具才能知道需要编译哪些文件,编译参数是什么,依赖文件是哪些。
add_executable(blink
blink.c
)
# pull in common dependencies
target_link_libraries(blink pico_stdlib)
# create map/bin/hex file etc.
pico_add_extra_outputs(blink)
# add url via pico_set_program_url
example_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引脚的值。
对,就是这么简单。
至于编译烧写的步骤请参考搭建开发环境的步骤。
下篇博文将介绍如何创建自己的工程文件夹。
相关文章
- [ 数据结构--C语言 ]不收藏必后悔系列--二叉树初阶
- Android自定义控件系列--Path综述
- 并发编程--理解JAVA中的各种锁
- 收尾--我的2016
- 面试必备(背)--RocketMQ八股文系列
- [springBoot系列]--springBoot注解大全
- 【推送服务】【FAQ】Push Ki常见咨询合集5--消息回执类问题
- Python科学计算生态圈--Pandas
- iOS开发系列--数据存取
- iOS开发系列--让你的应用“动”起来
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
- espresso系列3--测试实践
- CentOS7系列--1.6CentOS7配置sudo
- centos虚拟机网络配置--桥接模式
- Nginx系列(二)--模块化
- 记录python接口自动化测试--pycharm执行测试用例时需要使用的姿势(解决if __name__ == "__main__":里面的程序不生效的问题)(第三目)
- 百度咋做长文本去重(一分钟系列)--转
- 极速发展的饿了么订单系统架构演进--转
- LwIP系列--利用其内存池实现定义私有的内存池
- LwIP系列--数据包处理和PBUF结构详解
- RT-Thread系列--组件初始化