思路很简单
1.实现命令行的输入
2.实现finsh的输出
GUI采用LVGL
我们添加两个文本区域,一个作为命令输入
另一个作为finsh输出。
命令输入中绑定keyboard控件完成输入,在文本区域事件中调用msh_exec即可执行命令
然后显示finsh的输出
看了看源码 ,发现finsh输出是通过rt_ktprintf实现的,那我们只需在rt_ktprintf中添加对lvgl中文本区域的刷新即可,需要注意的是由于在上电初始化的过程中需要调用rt_ktprintf,而此时lvgl仍未初始化,故调用lvgl中的函数会导致程序跑飞,应该加一个标志位,判断lvgl是否已经初始化,使得仅在lvgl初始化后调用其函数,防止程序跑飞