首先,明确人机交互界面的定义

人机交互界面,顾名思义就是人和机器交互的接口,包括人向机器输入指令,机器向人展示指令执行的结果或者机器运行的状态等。

第二、人机交互界面包含的内容有哪些

人机交互界面包含输入和输出两个部分的内容,输入最简单的是按键、还可以是触摸屏。输出显示部分可以是LED指示灯、8段数码管、LCD等等

第三、stm32如何实现人机界面之人机界面输入

A、按键实现 如果按键很少IO充足的情况下,一个IO对应一个按键是比较简单的实现方法。

STM32可以做人机交互界面吗

B、如果按键比较多可以采用矩阵键盘的实现方式,或者通过AD转换通过AD采样来实现多按键扫描。

STM32可以做人机交互界面吗

IO 扫描矩阵按键

STM32可以做人机交互界面吗

ADC采样按键,实际是利用电阻分压和ADC采样来识别出哪一个按键被按下,这种电路好处是只需要一个IO即可,对于管脚资源有限的项目非常合适。

触摸屏,stm32可以支持电阻或者电容式触摸屏,电阻触摸屏实际就是通过ADC来实现的。原则上来说,只要支持ADC就能实现电阻触摸屏输入。电容式触摸屏有的stm32单片机可以支持支持。但是在实际项目中,通常采用模块化的设计,电容触摸屏和控制器通常集成在一起形成模组,这样做的好处是电容触摸屏模组程序和项目代码分开,有利于模块之间的解耦,另外不同项目之间复用也很有好处。通常模组还用I2C或者SPI接口和stm32单片机进行通信

STM32可以做人机交互界面吗

stm32如何实现人机界面之人机界面输出

A、LED指示灯输出,实际就是通过GPIO输出高电平或者低电平来控制的,这种是最简单实现方式,但是可以表达的信息也比较有限

STM32可以做人机交互界面吗

B、8段数码管实现方式,8段数码管显示本质上还是驱动LED,只不过每个数码管由8个LED组成,可以表达的信息也更丰富,比较可以显示数字、小数点、简单的字符(虽然比较丑陋,但终归是有了)

STM32可以做人机交互界面吗

C、LCD stm32单片机对LCD支持也是很强大的

可以支持128*64的点阵式LCD或者OLED显示屏,也可以支持更大分辨率的LCD,比如640*480,甚至1024*768等分辨率,取决于具体的stm32芯片型号。有些LCD模组内部有显存,不需要占用stm32内部的ram,但是有些高分辨率的LCD,则需要stm32的ram来支持lcd刷新,内存不够的话可能还需要外部扩展。

STM32可以做人机交互界面吗 

总结,stm32做人机见面还是可以的,当然需要根据具体的项目需求,选择相应的芯片型号,需要学习的知识:GPIO输入输出、ADC数模转换、I2C总线编程、SPI总线编程、LCD驱动相关知识,当然做UI界面的话可能还需要涉及UI显示库相关的编程,比如ucUI、emWin等等。