嵌入式技术论坛
直播中

张健

7年用户 1259经验值
私信 关注
[问答]

写了个demo亮led改了之后Finsh不能在输入了这是怎么回事?

写了个demo亮led,改了之后Finsh不能在输入了,这是怎么回事

void led_thread_init(void *ctx)
{
rt_kprintf("Hello, led
");
rt_pin_mode(24, PIN_MODE_OUTPUT);
while(1)
{
//rt_kprintf("set high
");
rt_pin_write(24,PIN_HIGH);
rt_thread_delay(50);
//rt_kprintf("set low
");
rt_pin_write(24,PIN_LOW);
rt_thread_delay(50);
}
}
int main(void)
{
rt_kprintf("Hello, world
");
rt_thread_t tid;
tid = rt_thread_create("led",
led_thread_init, RT_NULL,
512, 8, 10);
if(tid != RT_NULL)
{
rt_thread_startup(tid);
}
return 0;
}

这个是打印的Log,但无法在输入了。

initialize rt_hw_pin_init:0 done
\ | /

RT - Thread Operating System
/ | \ 4.0.2 build Aug 23 2019
2006 - 2019 Copyright by rt-thread team
do components initialization.
initialize rti_board_end:0 done
initialize dfs_init:0 done
initialize rt_hw_spi_init:0 done
initialize elm_init:0 done
initialize libc_system_init:0 done
initialize mnt_init:0 done
initialize finsh_system_init:0 done
Hsh />world
Hello, led

回帖(3)

李俊

2023-3-7 14:46:08
从你上述代码中看不出问题来,上述代码感觉写的没毛病。
猜测:
1、K210的GPIO驱动没做好,系统卡死了
2、系统当前存在一个优先级很高且没有任何挂起操作的线程存在
举报

张健

2023-3-7 14:46:19
int main(void)
{
    rt_kprintf("Hello, worldn");
    rt_pin_mode(24, PIN_MODE_OUTPUT);
    while(1)
    {
        rt_pin_write(24,PIN_HIGH);   
        rt_thread_delay(50);
        rt_pin_write(24,PIN_LOW);
        rt_thread_delay(50);
    }
    return 0;
}
LED能正常闪烁,但是FinSH功能无法正常运行,之后发现,只要调用了rt_pin_mode这个函数,就会导致FinSH功能不正常。
举报

张健

2023-3-7 14:46:25
rt_pin_mode(24, PIN_MODE_OUTPUT);
调用了这个函数之后FinSH功能就不正常了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分