按键作为常用的输入系统,如何准确并高效的获取按键值,是一个经常要面对的问题,今天我们看看在鸿蒙系统中,如何得到独立按键的按键值。实现目标我们这次以Hi3861核心板左下角的USER按键S2为例,当按键按下时,通过USBType-c对应的串口输出信息。按键S2在实物中的对应关系如下图黄线所示:按键原理图核心板左下角的按键S2的原理图如下:当S2被按下之后,GPIO05与GND相连,此时GPIO05输
分类:
其他好文 时间:
2020-11-08 17:37:37
阅读次数:
24
学习目的: 使用中断方式改写查询方式按键驱动程序 上一篇实现了查询方式的按键驱动程序,编写测试程序测试后发现,虽然应用程序可以通过系统调用使用驱动程序获取按键状态,但应用程序占CPU的资源极高。这一篇在编写按键驱动程序中引入中断方式,优化查询方式实现的按键驱动程序。 核心思想:驱动程序中的butto ...
分类:
其他好文 时间:
2020-07-30 01:50:49
阅读次数:
116
我使用了两种驱动开发的模型来写了smart210上的按键驱动程序,这里做一下总结以及提供他人参考以及建议和改进,最后一个原因是自己很久没有写过博客了,现在想分享一下linux驱动开发程序的编写。 首先是Linux的中断处理机制。裸机开发中,通过中断标识一个函数指明该函数是中断处理函数,在编译器处理时 ...
分类:
系统相关 时间:
2020-01-17 22:44:26
阅读次数:
120
专题12-按键驱动程序设计 第1课-混杂设备驱动模型 在Linux系统中,存在一类字符设备,它们拥有相同的主设备号(10),但次设备号不同,我们称这类设备为混杂设备(miscdevice)。所有的混杂设备形成一个链表,对设备访问时内核根据混杂设备形成一个链表,对设备访问时内核根据次设备号查找到相应的 ...
分类:
其他好文 时间:
2019-09-03 13:32:57
阅读次数:
74
button_drv.c //头文件#include <linux/init.h>#include <linux/module.h>#include <linux/fs.h>#include <linux/device.h>#include <linux/slab.h>#include <linux ...
分类:
其他好文 时间:
2019-05-30 16:14:17
阅读次数:
502
由上一节的输入子系统的框架分析可知,其分三层:设备驱动层,核心层,事件驱动层 我们在为某种设备的编写驱动层,只需要关心设备驱动层,即如何驱动设备并获得硬件数据(如按下的按键数据),然后调用核心层提供的接口,核心层就会自动把数据提交给事件处理层。在输入子系统中,事件驱动是标准的,适用于所有输入类的。我 ...
分类:
其他好文 时间:
2018-12-17 02:50:04
阅读次数:
258
title: 字符设备驱动(七)按键异步通知 tags: linux date: 2018 11 24 16:39:47 toc: true [TOC] 按键驱动方式对比 1. 查询:耗资源 2. 中断: 没有超时机制,当没有中断作为生产者,read函数一直休眠 3. poll机制,加入超时机制 上 ...
分类:
其他好文 时间:
2018-11-25 20:37:48
阅读次数:
194
机械按键在按下的过程中会出现抖动的情况,如下图,这样就会导致本来按下一次按键的过程会出现多次中断,导致判断出错。在按键驱动程序中我们可以这么做: 在按键驱动程序中我们可以这么做来取消按键抖动的影响:当出现一个按键中断后不会马上去处理它,而是延时一个抖动时间(一般10ms),如果在这个时间内再次出现中 ...
分类:
系统相关 时间:
2018-08-16 14:02:29
阅读次数:
225
编写按键驱动时,想知道内核是如何管理GPIO的,所以开始追踪代码,中间走了一些弯路,现记录于此。 追踪代码之前,我猜测:第一,这部分代码应该在系统set up阶段执行;第二,GPIO的代码应该在machine或者platform或者vendor相关的目录下。事实证明,第一点是正确的,第二点基本是错误 ...
分类:
系统相关 时间:
2018-06-20 00:55:50
阅读次数:
273