# easyShell **Repository Path**: skylin008/easyShell ## Basic Information - **Project Name**: easyShell - **Description**: A simple microcontroller shell.一个简单易用的单片机shell。 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2024-04-17 - **Last Updated**: 2024-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # easyShell [English](./README.en.md) #### 介绍 一个简单易用的单片机shell。 #### 特性 1. 代码量少,简单易懂 2. 通过宏定义配置,任意裁剪功能 3. 直接对接串口函数,无需重定向printf #### 功能 1. 支持tab补全命令 2. 支持tab显示命令列表 3. 支持光标移动 4. 支持自定义命令 5. 支持man查看帮助 6. ctrl+c 退出运行的程序 7. 变量查看器,变量动态刷新 #### 使用方法 1. 输入程序名称,回车,可运行程序 2. 无输入字符串情况下,单击tab自动显示命令列表 3. 输入程序部分名称,单击tab自动补全命令 4. 输入程序部分名称,多个程序符合,单击tab自动显示待输入命令列表 #### 移植 1. 准备串口发送函数 ```c void printSend(char* buf,uint16_t len) { // usartSend(USART1,(uint8_t*)buf,len); } ``` 2. main函数中初始化easyShell ```c int main(void) { ... easyShellInit(printSend); while(1) { ... } } ``` 3. 串口中断或循环中,添加数据接收函数 ```c void easyShellReceiveData(uint8_t dat); ``` 4. 主循环中加入loop函数(增强功能) ```c void easyShellLoop(void); ``` 5. 定时器加入tick函数(增强功能) ```c void easyShellTick(uint16_t cycleMs); ``` #### 添加自定义命令 ```c int userCmd_main(int argc, char** argv) { int i; printf("cmd:%s\n",argv[0]); for(i=1;i