S3C2440开发板上实现按键点亮LED驱动开发的详细过程01

S3C2440开发板上实现按键点亮LED驱动开发的详细过程01

ID:37900554

大小:873.00 KB

页数:11页

时间:2019-06-02

S3C2440开发板上实现按键点亮LED驱动开发的详细过程01_第1页
S3C2440开发板上实现按键点亮LED驱动开发的详细过程01_第2页
S3C2440开发板上实现按键点亮LED驱动开发的详细过程01_第3页
S3C2440开发板上实现按键点亮LED驱动开发的详细过程01_第4页
S3C2440开发板上实现按键点亮LED驱动开发的详细过程01_第5页
资源描述:

《S3C2440开发板上实现按键点亮LED驱动开发的详细过程01》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、文章记录了作者在S3C2440开发板上实现按键点亮LED驱动开发的详细过程,还记录了一些容易出现的错误,以及怎么解决这些错误。一、驱动开发流程Linux驱动开发不同于应用程序的开发。驱动开发是直接和硬件打交道的,通过对硬件的操作给应用程序提供一些接口函数,使得应用程序能够“间接”的控制硬件来工作。对于按键点亮LED的驱动开发流程如下。二、驱动开发具体步骤1、查看开发板TQ2440底板原理图,找到按键和LED模块,如下图:图-2按键和LED电路图从上图我们可以清楚地看到K1~K4对应的管脚是ENT1~E

2、NT4,LED1~LED4对应的管脚是nLED_1~nLED_4.2、查看TQ2440_核心板原理图,找到对应的CPU管脚,如下图:图-3按键和LED对应CPU管脚电路图3、查看s3c2440芯片手册,查看CPU管脚的模式,如下图从上图我们可以看出按键对应的CPU管脚GPF0~GPF4都是占两位(如:GPF0[1:0])。按键是一种中断,要想让按键工作在中断模式下,就要设置GPF0~GPF4(GPF3除外)管脚都设置在中断模式下,即为10。对于LED对应的CPU管脚GPB5~GPB8也是占两位。要想让

3、LED工作,就要让LED工作在输出模式下,即对应管脚设置为01.4、编写按键点亮LED驱动程序/*调用内核头文件,和应用程序调用的头文件不一样*/#include#include#include#include#include#include#include#include

4、h>#include#include#include#include#defineDEVICE_NAME"tope-buttons"//自定义驱动称为“tope-buttons”。#defineBUTTON_MAJOR232//自定义驱动的主设备号是232。注意:此处的主设备号不能和系统已使用的一样,用cat/proc/devices查看该设备号是否已使用,如果已被使

5、用,请换一个未使用的主设备号。#defineIOCTL_LED_ON1//定义LED亮为1#defineIOCTL_LED_OFF0//定义LED暗为0/*定义含中断,管脚,管脚设置等信息的结构体*/structbutton_irq_desc{intirq;intpin;intpin_setting;intnumber;char*name;};/*用来指定按键所用的外部中断引脚及中断触发方式,名字*/staticstructbutton_irq_descbutton_irqs[]={{IRQ_EINT

6、1,S3C2410_GPF1,S3C2410_GPF1_EINT1,0,"KEY1"},/*K1*/{IRQ_EINT4,S3C2410_GPF4,S3C2410_GPF4_EINT4,1,"KEY2"},/*K2*/{IRQ_EINT2,S3C2410_GPF2,S3C2410_GPF2_EINT2,2,"KEY3"},/*K3*/{IRQ_EINT0,S3C2410_GPF0,S3C2410_GPF0_EINT0,3,"KEY4"},/*K4*/};上面初始化成员里的S3C2410_GPF0_EI

7、NT0在Regs-gpio.h中定义为#defineS3C2410_GPF0_EINT0(0x02<<0),即为我们前面说的“10”模式,其他的管脚类似。这个初始化函数的作用就是将如S3C2410_GPF0_EINT0的模式写入地址为如S3C2410_GPF0的寄存器里,并将这个管脚设置成中断模式,以及添加一些其他信息。/*初始化四个按键的值key_values*/staticvolatileintkey_values[]={0,0,0,0};staticunsignedlongled_table[]

8、={S3C2410_GPB5,S3C2410_GPB6,S3C2410_GPB7,S3C2410_GPB8,};//声明LED的管脚staticunsignedintled_cfg_table[]={S3C2410_GPB5_OUTP,S3C2410_GPB6_OUTP,S3C2410_GPB7_OUTP,S3C2410_GPB8_OUTP,};//声明LED管脚的配置信息,此处的S3C2410_GPB8_OUTP与上面的S3C2410_GPF0_EI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。