官网链接:https://www.rt-thread.org/document/site/programming-manual/finsh/finsh/
方法来自官网,在此仅作笔记:
编写步骤:
1、编写功能函数;
2、添加"MSH_CMD_EXPORT" 命令;(我习惯放在函数以后,方便查看,切记命令是函数大括号之外哦)
//******************************* 自定义 FinSH 应用示例 ***********************************
/******************************************************************************************
*** 函数名称: finsh_hello
*** 输入参数: 无
*** 返 回 值: 无
*** 说 明:FinSH 应用示例,不带参数的 msh 命令示例
*** 链 接:https://www.rt-thread.org/document/site/programming-manual/finsh/finsh/#msh_1
*** 编者 时间 版本
*** wagnlu 2020/10/18 V0.1
******************************************************************************************/
void finsh_hello(void)
{
rt_kprintf("finsh_hello RT-Thread ON paramter!\n");
}
MSH_CMD_EXPORT(finsh_hello, say hello to RT-thread); //finsh 控制台命令:finsh_hello 无参数
/******************************************************************************************
*** 函数名称: finsh_atcmd
*** 输入参数: str
*** 返 回 值: 无
*** 说 明:FinSH 应用示例,带参数的 msh 命令示例
*** 链 接:https://www.rt-thread.org/document/site/programming-manual/finsh/finsh/#finsh_4
*** 编者 时间 版本
*** wagnlu 2020/10/18 V0.1
******************************************************************************************/
void finsh_atcmd(int argc, char **argv)
{
if(!rt_strcmp(argv[1], "server")) //从第二个字母开始判断,输入例如:finsh_atcmd server,从空格开始算字符
{
rt_kprintf("AT server!\n");
}
else if(!rt_strcmp(argv[1], "client")) //从第二个字母开始判断,输入例如:finsh_atcmd server,从空格开始算字符
{
rt_kprintf("AT client!\n");
}
else
{
rt_kprintf("Please input 'atcmd <server|client>'\n"); //提示输入命令类型
}
}
MSH_CMD_EXPORT(finsh_atcmd, atcmd sample: atcmd <server|client>); //finsh 控制台命令:finsh_atcmd并输入参数 server 或者 client
//******************************* 自定义 FinSH 应用示例 ***********************************
演示效果:
1、命令:finsh_hello
2、命令:finsh_atcmd server
2、命令:finsh_atcmd client