[STM32F0] 【NUCLEO-64试用】RT-Thread Nano添加控制台和FinSH组件

[复制链接]
728|5
 楼主| hbzjt2011 发表于 2020-7-30 10:59 | 显示全部楼层 |阅读模式
      昨天已经在NUCLEO-F091RC开发板上成功移植了RT-Thread Nano,接下来在其基础上添加串口控制台打印输出功能和FinSH输入交互功能。在 RT-Thread Nano 上添加 UART 控制台打印功能后,就可以在代码中使用 RT-Thread 提供的打印函数 rt_kprintf() 进行信息打印,从而获取自定义的打印信息,方便定位代码 bug 或者获取系统当前运行状态等。RT-Thread FinSH 是 RT-Thread 的命令行组件(shell),提供一套供用户在命令行调用的操作接口,主要用于调试或查看系统信息。1、首先在rtconfig.h文件中使能RT_USING_CONSOLE宏定义
980535f222ad1a6d01.png
2、在Keil软件中通过Manage Run-Environment添加FinSH源码到项目工程中
711065f222b5ac2d0b.png
3、将串口初始化函数MX_USART2_UART_Init()添加到board.c文件中的rt_hw_board_init()函数中,用于实现串口初始化和RT-Thread版本信息打印
972845f2236896e139.png
4、在主函数中添加rt_hw_console_output()函数以及rt_hw_console_getchar()函数的实现
719465f2237052c742.png
902305f22371da7439.png
56585f22372999d47.png
5、通过以上步骤,便可以实现在RT-Thread Nano中串口控制台和FinSH组件的添加,重新编译程序,下载至开发板。打开终端软件,可以看到控制台输出。
843855f22379495c31.png

wsmysyn 发表于 2020-7-30 16:33 | 显示全部楼层
我刚好也在研究这个,能说一下你的mdk的版本么,我这边不知道是不是用mdk太新了,还是其他原因,finsh组件两种方式添加编译可以通过,但是好像并没有控制台的功能,宏开关也打开了,看代码好像很多关于编译型号的部分,有些不能正确识别,所以并没有编译进去,比如正常我选择是ARMCC的编译器,但是MSVC的编译器宏总是能有定义,很奇怪
 楼主| hbzjt2011 发表于 2020-7-30 17:18 | 显示全部楼层
wsmysyn 发表于 2020-7-30 16:33
我刚好也在研究这个,能说一下你的mdk的版本么,我这边不知道是不是用mdk太新了,还是其他原因,finsh组件 ...

我的是5.25,这个应该和版本关系不大,你串口映射的对吗?
wsmysyn 发表于 2020-7-30 17:24 | 显示全部楼层
hbzjt2011 发表于 2020-7-30 17:18
我的是5.25,这个应该和版本关系不大,你串口映射的对吗?

串口有打印,也能接收转发回来,就是msh的命令执行不了,比如help,ps之类的没反应,
wsmysyn 发表于 2020-7-30 19:27 | 显示全部楼层
hbzjt2011 发表于 2020-7-30 17:18
我的是5.25,这个应该和版本关系不大,你串口映射的对吗?

搞定了,两方面原因,一个是我用的工具不对,要用终端,串口工具,应该是默认没有换行这类的字符,所以msh解析不对,用putty控制台工具就可以了,

另一个宏高亮的问题看起来应该是keil本身的问题,可能是keil判断有误,
gaoyang9992006 发表于 2020-7-30 20:48 | 显示全部楼层
昨晚上我直接从官方下载原文件,自己建立工程,根据官方手册,移植到了一个新的单片机上:新唐NUC029SGE
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:欢迎参与LabVIEW版块的讨论学习! 点我一键即达

339

主题

2934

帖子

45

粉丝
快速回复 在线客服 返回列表 返回顶部