基于单片机系统串口控制台的软件实现(RTOS-STM32)

1.前言

玩过Linux的朋友, 是不是对Linux无所不能的串口Shell命令控制台羡慕不已, 要是自己做的STM32F系列低档次的MCU也有这种控制交互能力, 会给调试/维护和配置省下多少麻烦事呀, 比如启动/关闭调试或自检模式, 打印调试信息, 配置系统参数, 传输文件等等, 也有相当多的朋友凭借自己出色的编程能力可以实现这些功能, 下面是我自写的一个控制台软件, 以作交流.

本平台(console)具备以下性能特点:
1) 移植性强,代码文件少.
2) 只有在处理用户的输入命令时, 才占用CPU资源;
3) 用户可以非常灵活的添加按模板编写的命令脚本文件, 自定义扩张能力强.
4) 支持操作系统和非操作系统两种场景应用.
5) 调试模式设置, 命令帮助指令, 复位指令等基础功能。 
功能越多设计会越复杂, 为了解释清楚代码, 先向大家解释一下以上功能的基础实现原理, 并提供一个最小的的源码工程

2,软件实现

###2.1 串口配置###
定义console需使用的串口,具体配置详见我的另一篇博客《单片机串口环形缓冲队列处理架构》,链接地址:https://blog.csdn.net/qq_26964063/article/details/96861560

###2.2 console控制台软件编写###

1,定义一个指向vint类型的指针变量,用于指向回调功能函数:
	typedef int (*consoleCallback)(char * buf, int len);//函数指针
	consoleCallback console_cb = NULL;

2,定义一个信号量,用于串口中断接收发送信号量来通知主函数有信号待处理,作用:减少cpu的占用时间
	SemHandle_t csSem		= NULL;
    sem_postIsr(csSem);

你可能感兴趣的:(C语言,单片机开发,stm32,单片机,嵌入式)