双核点亮不同的 LED 示例,引脚分别是GP0跟GP1。
#include "pico/stdlib.h"
#include "pico/multicore.h"
#define LED1 0 // 核心 0 控制的 LED 引脚
#define LED2 1 // 核心 1 控制的 LED 引脚
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
}
void core1_entry() {
gpio_init(LED2); // 初始化 GPIO 1
gpio_set_dir(LED2, GPIO_OUT); // 设置为输出模式
while (1) {
gpio_put(LED2, 1); // 点亮 LED2
sleep_ms(500); // 延时 500 毫秒
gpio_put(LED2, 0); // 熄灭 LED2
sleep_ms(500);
}
}
// the loop function runs over and over again forever
void loop() {
gpio_init(LED1); // 初始化 GPIO 0
gpio_set_dir(LED1, GPIO_OUT); // 设置为输出模式
// 启动核心 1
multicore_launch_core1(core1_entry);
while (1) {
gpio_put(LED1, 1); // 点亮 LED1
sleep_ms(1000);
gpio_put(LED1, 0); // 熄灭 LED1
sleep_ms(1000);
}
}
直接上案例了。
代码说明
引脚定义
核心 0 控制的 LED 引脚为 GPIO 0。
核心 1 控制的 LED 引脚为 GPIO 1。
核心 1 任务
通过 core1_entry
函数定义核心 1 的逻辑,控制 GPIO 1 的点亮和熄灭。
核心 0 任务
主函数 main
中运行核心 0 的逻辑,控制 GPIO 0 的点亮和熄灭。
启动核心 1
使用 multicore_launch_core1
启动核心 1 并运行 core1_entry
函数。
延时
两个核心独立运行,核心 0 的延时为 1000 毫秒,核心 1 的延时为 500 毫秒。
编译和运行
使用 Raspberry Pi Pico SDK 设置项目。
将代码保存为 main.c
并添加到 CMake 构建系统中。
编译并烧录到 RP2040 开发板。
如果连接了 LED 到 GPIO 0 和 GPIO 1,它们将分别以不同的频率闪烁。