PS2小键盘读取

这篇博客介绍了如何在STM32F10X平台上读取PS2小键盘的数据。内容包括PS2时序图、配置代码解析,特别是中断服务函数EXTI15_10_IRQHandler()中的状态机实现读取,以及Key_Convey()函数中通断码的识别。代码已经在硬件上验证过,支持0-9、Back和Del键的识别。
摘要由CSDN通过智能技术生成

1.平台: stm32f10x  PS2小键盘

2.管脚:PS2_DATA  PF11  PS2_CLK  PF12

3.通码和断码的概念:

通码:故名思议,即ps2按键按下的键值码

断码:即ps2按键按下后松开时发送的键值码  格式为: F0 + 相应的通码 (除Enter,num等键)

4.PS2时序图:

    device_to_host (即stm32作为读取端,ps2键盘发送数据)


状态0: start -----------------------------------起始位  clock下降沿采集DATA为0

状态1: DATA0---------------------------------数据D0,最低位

状态2: DATA1---------------------------------数据D1

状态3: DATA2---------------------------------数据D2

状态4: DATA3---------------------------------数据D3

状态5: DATA4---------------------------------数据D4

状态6: DATA5---------------------------------数据D5

状态7: DATA6---------------------------------数据D6

状态8: DATA7---------------------------------数据D7,最高位

状态9:PARITY--------------------------------奇偶校验位

状态10:STOP--------------------------------停止位  clock下降沿采集DATA为1


5.配置代码解析:


5.1编程思路:利用外部中断识别PS2_CLK下降沿,并在下降沿利用状态机实现读取键值

                     读取键值完毕需要对键值区分通断码,实现一次的ps2的识别

5.2库文件

“ps2.h”

#ifndef _ps2_H
#define _ps2_H

#include "stm32f10x.h"
#include "usart.h"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值