对于做linux开发的研发人员来说,大家都喜欢通过输入指令符来执行一些命令操作,如果在MCU编程过程中有一个类似linux的shell命令工具可以通过串口调试助手输入命令然后运行一些调试函数,将会为编程提供极大的帮助。
对于MCU来说,每次修改程序调试就需要重新下载,有时候仅仅是调试修改几个参数,这样反复修改程序编译下载就显得很繁琐,浪费时间,而且在调试电机、电源等高压电源类应用时,如果出现操作错误,有可能会造成炸机毁坏电脑等危险,如果有一个类似linux的命令行操作,这样就可以省出很多时间,但是由于MCU存储资源和运算速度等限制,所以想实现一个同样功能的操作,就需要做一些处理优化。目前有很多类似的shell代码,本次介绍如何在MM32 MCU上使用shell来辅助开发,本次实验将在基于MM32W373PSB的MiniBoard上进行测试验证,实现shell的通信端口可以使用任意通信方式,如UART、USB、SPI、IIC、485等方式,本次使用MM32W373PSB的UART2作为shell输入输出通道。


串口UART2 ,PA2 TXD2, PA3 RXD 通过排针链接。

这里不能不吐槽一下,MM32 MiniBoard的开发板设计,板载MMLINK可以当虚拟串口,所以应该用排针跟主控MCU链接,这样可以断开。
只好借助STM32的板子虚拟串口功能了。

如上完成所有后下载烧写进入,然后打开PuTTY,设置为115200,界面如下:

回车 help
MM32>>help
COMMAND LIST:
I2C --Write Data To AT24C02N And Read
BUZ --Adjust The Buzzer Volume
SPI --Write Data To HK25Q16C And Read
ADC --Read RV1 ADC Channel Voltage
help --command help
cls --clear command line
既可以按照提示进行板载功能测试。ADC测试如下: