在 STM32 实现命令行

💡 原文中文,约1300字,阅读约需3分钟。
📝

内容提要

本文介绍了在工作中使用基于Linux命令行的开发环境,并分享了移植nr shell的过程。通过对比Finsh和nr_micro_shell两个项目,选择了资源占用较少的nr作为命令行交互工具。文章详细介绍了代码下载、STM32 CubeMX工程配置、代码修改和移植现象等步骤。最后提到了处理效率有待优化,并推荐关注公众号“良许Linux”获取更多Linux相关知识。

🎯

关键要点

  • 在工作中使用基于Linux命令行的开发环境。

  • 对比Finsh和nr_micro_shell,选择资源占用较少的nr作为命令行工具。

  • 移植nr shell的过程包括代码下载、STM32 CubeMX工程配置、代码修改和移植现象。

  • 从GitHub下载nr_micro_shell的代码。

  • 配置STM32L431 UART外设中断数据收发,开启FreeRTOS,生成Makefile工程。

  • 修改STM32 CubeMX的串口重映射,将输出关联到nr shell打印函数。

  • 创建信号量用于同步接收状态,开启空闲中断接收。

  • nr shell的基本收发交互功能完成,但处理效率有待优化。

  • 推荐关注公众号“良许Linux”获取更多Linux相关知识。

延伸问答

如何在STM32上实现命令行交互?

可以通过移植nr shell来实现命令行交互,具体步骤包括代码下载、STM32 CubeMX工程配置、代码修改等。

为什么选择nr而不是Finsh作为命令行工具?

nr占用的MCU资源较少,适合资源有限的环境,而Finsh功能丰富但资源占用较高。

如何配置STM32 CubeMX以支持nr shell?

需要配置STM32L431的UART外设中断数据收发,并开启FreeRTOS,生成Makefile工程。

移植nr shell的过程中需要注意哪些代码修改?

需要修改串口重映射,将输出关联到nr shell的打印函数,并创建信号量用于同步接收状态。

nr shell的处理效率如何?

nr shell的基本收发交互功能完成,但处理效率有待优化,一条简单指令的响应时间约为10毫秒。

在哪里可以找到nr_micro_shell的代码?

可以在GitHub上找到nr_micro_shell的代码,地址是github.com/Nrusher/nr_micro_shell。

🏷️

标签

➡️

继续阅读