问题描述
我们使用的库rtsmart+linux SDK
在 /k230_sdk/src/big/rt-smart/userapps进行用户态开发,想要进行点灯操作,遇到了困难,不知道怎么进行。
观察仓库的k230_sdk / src / big / rt-smart / kernel / rt-thread / components / drivers / include / drivers / pin.h
可不可以为我提供,帮助,我应该如何使用呢?
观察仓库的k230_sdk / src / big / rt-smart / kernel / bsp / maix3 / board / interdrv / gpio / drv_gpio.h
这个用于一个指向性较强的测试gpio读写功能的文件
观察 庐山派的原理图,存在用户可以调用的RGB指示灯。

首先,尝试根据测试gpio读写功能的文件进行改编,
#include <unistd.h>
#include <stdio.h>
#include <rtdbg.h>
#include <rtthread.h>
#include <rtdevice.h>
#include "../kernel/bsp/maix3/board/interdrv/gpio/drv_gpio.h"
#define RGB_LED_R_PIN 62
#define RGB_LED_G_PIN 20
#define RGB_LED_B_PIN 63
static void gpio_red_entry(void *param)
{
int blink_cnt = 20; // 闪烁次数
/* 1. 配置引脚为输出模式 */
kd_pin_mode(RGB_LED_R_PIN, GPIO_DM_OUTPUT);
/* 2. 循环闪烁逻辑 */
while (1)
{
/* 点亮红灯:输出低电平(根据电路逻辑,低电平导通LED) */
kd_pin_write(RGB_LED_R_PIN, GPIO_PV_LOW);
rt_thread_mdelay(500); // 亮500ms
/* 熄灭红灯:输出高电平 */
kd_pin_write(RGB_LED_R_PIN, GPIO_PV_HIGH);
rt_thread_mdelay(500); // 灭500ms
/* 达到闪烁次数后退出循环 */
if (--blink_cnt == 0)
break;
}
}
int main(void)
{
rt_thread_t led_thread;
/* 创建LED控制线程(避免main死循环,符合RT-Thread多任务设计) */
led_thread = rt_thread_create(
"red_led", // 线程名称
gpio_red_entry, // 线程入口函数
RT_NULL, // 线程参数
1024, // 线程栈大小(字节)
10, // 线程优先级(1-255,越小优先级越高)
10 // 线程时间片(ms)
);
if (led_thread != RT_NULL)
{
rt_thread_startup(led_thread); // 启动线程
}
return RT_EOK;
}
发现,报错

求助!!!
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img
硬件板卡
庐山派
软件版本
CanMV-K230_LCKFB_sdcard__nncase_v2.10.0.img