【国民技术N32项目移植】N32L43XRL-STB串口调试 nr_micro_shell移植

电子说

1.3w人已加入

描述

源码路径

  • https://gitee.com/nrush/nr_micro_shell.git
    git clone https://gitee.com/nrush/nr_micro_shell.git
    

移植

1、源码文件拷贝

国民技术

  • 只需要 inc 以及 src 两个文件夹内容

2、将两个文件夹中的c、h文件添加到工程中

国民技术

3、修改配置文件 nr_micro_shell_config.h

  • 可见源码中readme.md说明
  • 因为裸机下移植,需要定义 #define NR_MICRO_SHELL_SIMULATOR
  • 开启 #define NR_SHELL_USING_EXPORT_CMD 可更好的使用该shell

4、使用(main.c)中调用

  • 初始化必要的串口驱动(可见 【国民技术N32项目移植】N32L43XRL-STB 串口调试 使用printf打印日志)
  • 定义自己需要的调试命令,如下:我定义了两个命令用来打开 led和关闭led的命令(命令为 on和off)
    void led_on_command_funtion(char argc, char *argv)
    {
        log_func();
    
        GPIO_SetBits(GPIOB, GPIO_PIN_4);
    }
    void led_off_command_funtion(char argc, char *argv)
    {
        log_func();
    
        GPIO_ResetBits(GPIOB, GPIO_PIN_4);
    }
    NR_SHELL_CMD_EXPORT(on, led_on_command_funtion);
    NR_SHELL_CMD_EXPORT(off, led_off_command_funtion);
    NR_SHELL_CMD_EXPORT(off, led_off_command_funtion);
    
    NR_SHELL_CMD_EXPORT(off, led_off_command_funtion);
  • 主函数中调用如下
    int main(void)
    {
        log_init(); //uart驱动初始化
        shell_init();//shell初始化
        unsigned int i = 0;
    
        while (1)
        {
            if (USART_GetFlagStatus(USART1, USART_FLAG_RXDNE) != RESET)
            {
                char ch = USART_ReceiveData(USART1);//读取一个字节
                // log_debug("recv %x", ch);
                shell(ch);//shell执行
            }
        }
    }
    }
    
    }

使用

  • 编译下载 后,通过串口工具我查看到初始化打印

    国民技术

  • 开源代码,初始化打印,以及提示符可以自己修改

  • 配合上 shell工具使用更 happy

  • 支持tab补全,查看命令等

    国民技术
      审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_86523069 2023-03-11
0 回复 举报
打算用手上的N32G435CBL7  收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分