输入设备编程
PS2(键盘和鼠标):
PS2鼠标、键盘是标准的输入设备,比嵌入式系统专用的矩阵键盘等设备资源丰富,且占用系统资源少(仅需2各IO),所以在嵌入式设备中经常用到。
接口为6pin,实际信号线2根(DATA,CLK)电源和地,通信协议为双向同步串行协议(任何一方将CLK=0)即中止协议,键盘和鼠标实际上是输入设备只需主机读取PS2设备的单向通信)帧格式(1-8-1-1),CLK下降沿读数据(利用中断实现),CLK=1时允许数据改变
第二套码表(由按下时的通码+弹起时的断码组成)即定义三个字节来串行缓存通码+断码即可读取输入设备的内容。
***********************************************
红外遥控器:
占用资源少(1条IO),省电可移动。无线连接,在人机界面也经常用到
当键按下后芯片通过编码(常见NEC红外编码协议)将码值加载到载波上(NEC是38KHZ(占空比3:1),该频率可以通过555芯片、PWM、455K外部石英晶体12分频得到),并通过红外发光二极管发射出去;接收端(接口3pin只有一个信号线,可以设置成中断接收)通过协议取出码值,关键是对NEC红外编码协议的理解。(引导码+用户设备识别码、反码+数据码/反码)串口接收电平是根据高电平的持续时间来识别的(涉及到脉冲宽度测量)。
串口的irDA模式:STM32的有些串口支持,IRDA为红外的早期版本速率低(115200),现在都4M/16M的速率了