Linux驱动学习【GPIO】

应用层要打开我们的设备文件,调用对应的设备驱动程序,把我们要点亮灯的操作实现。要在入口把设备申请好,把GPIO口设置好,出口注销设备相关即可。首先电灯得知道引脚号,快去翻原理图!之前说过,我们要创建字符设备文件。这里设计应用层了,那么我们就需要调用内核文件自己写的文件操作函数,也就是fops结构体,之前我们学习了驱动程序的编写框架以及了解了字符设备驱动需要做的事。(设备注册函数register_chrdev把file_operations结构体告诉内核), 装驱动程序时,就会去调用这个入口函数。
摘要由CSDN通过智能技术生成

之前我们学习了驱动程序的编写框架以及了解了字符设备驱动需要做的事。现在我们就正式编写一个功能函数点亮一盏灯(所有的故事都得从一盏灯亮了开始)。

        首先电灯得知道引脚号,快去翻原理图!通过看RK3399的原理图我看到led2的引脚以及什么时候点亮。引脚就是GPIO1_C7(55=32+16+7),高电平点亮。

 使用GPIO函数操作LED设备,需要用的GPIO函数:

1.申请GPIO口的使用权
    gpio_request(unsigned int gpio,const char *label);//引脚号,引脚名称

2.将GPIO口设置为输入/输出模式
    gpio_direction_input(unsigned gpio);//输入模式
    gpio_direction_output(unsigned gpio);//输出模式

3.释放GPIO口
    gpio_free(unsigned int gpio);

之前说过,我们要创建字符设备文件。我们可以在用户层打开设备文件然后写入数据让灯实现亮灭。这里设计应用层了,那么我们就需要调用内核文件自己写的文件操作函数,也就是fops结构体,定义自己的file_operations结构实现对应的读写文件操作。(设备注册函数register_chrdev把file_operations结构体告诉内核), 装驱动程序时,就会去调用这个入口函数。

         用户进程利用在对设备文件进行诸如read/write操作的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值