STM8S---按键I/O设置及按下事件问题
发布时间
阅读量:
阅读量
-
GPIO设置
-
按键检测
- 1 连续按键检测短按长按
-
关键代码
1 GPIO设置
STM8 I/O 口引脚配置表
| Px_DDR | Px_CR1 | Px_CR2 | I/O 方式 | 引脚状态 |
|---|---|---|---|---|
| 0 | 0 | 0 | 输入 | 悬浮输入 |
| 0 | 0 | 1 | 输入 | 上拉输入 |
| 0 | 1 | 0 | 输入 | 中断悬浮输入 |
| 0 | 1 | 1 | 输入 | 中断上拉输入 |
| 1 | 0 | 0 | 输出 | 开漏输出 |
| 1 | 1 | 0 | 输出 | 推挽输出 |
| 1 | x | 1 | 输出 | 输出(最快速度为10MHZ) |
对STM8S的IO配置,我们只需要操作五个寄存器就行了:
输出端口的数据存储区域(ODR)
- 输入通道的数据存储区域(IDR)
- 数据传输方向指示存储单元(DDR)
- 控制存储单元中的第一条指令(CR1)
- 控制存储单元中的第二条指令(CR2)
2 按键检测
当进行独立按键检测时, 若采用上拉输入模式, 则无法完成该功能; 而采用中断悬浮输入方式则可正常工作. 两次短按键之间的间隔通常在300到600毫秒之间运行; 每次短按的触发时间一般在14到26毫秒左右.
2.1 连续按键检测(短按+长按)
定时器TIM1 + 按键 = 连续按键检测(短按键+长按键)
两个标记:
- 短按+长
全部评论 (0)
还没有任何评论哟~
