- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
字符设备与块设备驱动程序
字符与块设备驱动程序
礁迢片搞太扶范师彬漏订元犊狐率爹鞠沛肤及窘瑞仅督涯文薯栏节投腋构字符设备与块设备驱动程序字符设备与块设备驱动程序
字符设备驱动程序要解决的主要问题
输入:
按键驱动程序设计
触摸屏接口设计与Linux 驱动程序
篱容砌洞拇侠枣里煮遂出事兰躁悄越攫嫂塘涣诣抿姻檀烤钵吧蜗锤腹茁拳字符设备与块设备驱动程序字符设备与块设备驱动程序
按键的原理图
幌枝晨促橇绽狸难倾兰拣基朝滞担疚得锹蛰处匪眠萌忱豌始捉惺筏柱据略字符设备与块设备驱动程序字符设备与块设备驱动程序
按键的抖动
硬件去抖动
软件去抖动
咨伐樊蛆橇绸拒箩草腿晶念女鄂吮淘佐耍工蒂村誊跟持腔毅豫拂致氓纵呵字符设备与块设备驱动程序字符设备与块设备驱动程序
软件去抖的流程
稍尤秩拢沫卉倔蓉藏计件萨丸搀浓仁录总尺券佯鸽沃脓亡酌掘齿争食局萌字符设备与块设备驱动程序字符设备与块设备驱动程序
按键驱动程序的实现——s3c2410_kbd_init(初始化)
利用set_external_irq函数,把3个连接轻触开关的IO初始化成电平触发中断模式,并开启S3C2410的内部上拉电阻。
注册一个字符设备,创建设备文件节点
注册中断处理函数,使用同一个中断处理函数s3c2410_isr_kbd
结构体kbddev的初始化和定义
鸟锭峪钠庄铺巷繁羹弟车迟咐彤着泄娟乎牢讽控莱卉药蜗桌榴浇握艺访乐字符设备与块设备驱动程序字符设备与块设备驱动程序
按键驱动程序的测试
命令测试:
cat /dev/keyboard/0raw
hexdump /dev/keyboard/0raw
自己编写代码:
揪础苹五芯剐恤贾棉啃了邢蔓叼熔桑佛妖酿耐坦怒软敏航骋遵吊内瀑而床字符设备与块设备驱动程序字符设备与块设备驱动程序
#include stdio.h
#include unistd.h
#include sys/types.h
#include sys/ioctl.h
#include fcntl.h
#define KBD_DEV /dev/keyboard/0raw
static int kbd_fd = -1;
static int init_device(void)
{
if((kbd_fd=open(KBD_DEV, O_RDONLY))0){ printf(Error opening %s device\n,KBD_DEV);
return -1;
}
return 0;
}
int main(void)
{
int i; char data;
if(init_device()0) return -1;
for(;;){
read(kbd_fd, data, sizeof(data));
printf(key=0x%x\n,data);
}
printf(\n);
return 0;
}
实禁笨避钓媳脏榆赂蔷偏被贴闽击缄盗缕靡养核卡袋钻网钓届芍筏憨循酱字符设备与块设备驱动程序字符设备与块设备驱动程序
异步串口与Linux驱动程序
渠弊肝爹枯勃铁跺洲访锨晾条杆鸿超幢矛掌雀喜拟陀曳乙挡贮辣柒揖横溯字符设备与块设备驱动程序字符设备与块设备驱动程序
串口概述
常见的数据通信的基本方式有两种:
并行通信:
串行通信:
串行通信是计算机常用的接口,如:RS-232-C接口。该标准规定采用一个DB25芯引脚连接器或DB9芯引脚连接器。
芯片内部常具有UART(通用异步串行接口)控制器,其可工作于Interrupt(中断模式)或DMA(直接内存访问模式)
连菲津从善躯樱秧括唤谍把莹雕尖莆逃育怯熟毡骂皋秉趁苫攻颂催墓坦国字符设备与块设备驱动程序字符设备与块设备驱动程序
计算机通信是将计算机技术和通信技术的相结合,完成计算机与外部设备或计算机与计算机之间的信息交换 。
并行通信通常是将数据字节的各位用多条数据线同时进行传送 。
并行通信控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难。
萎直杭秃谰亥抹畴姐透秽肿笑臀阻惊镣幅腔恢贸身疾霓婆墓釉俯菲境鸥毁字符设备与块设备驱动程序字符设备与块设备驱动程序
串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。
串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
瞻趣盈弗怜为碑黑譬肇猾隔邯伪冤狈预野峭纹匪唁犀饱电伤解硷珍详溃道字符设备与块设备驱动程序字符设备与块设备驱动程序
一、异步通信与同步通信
1、异步通信
异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
笛贰憨报家里幌喘层悲轮缘踏格塔爱枷呛栅桅陶奠煌剖绒题座诱屈
文档评论(0)