首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【BSP视频教程】STM32H7视频教程第10期:STM32H7的GPIO专题,非阻塞式驱动编程思想,按键FIFO,蜂鸣器驱动的新式玩法(2022-03-23)

本期视频我们把这种实现思路做的说明,然后讲解下我们的驱动代码实现。 下次的GPIO应用实战视频中,移植到全新的器件上进行说明,使用杜邦线洞洞板搭建的,不使用我们自己的开发板,做实际的驱动移植魔改实战。 视频(1080p): https://www.bilibili.com/video/BV1y3411p7NN 本期视频主要分为如下几个部分: 第1部分: 1、硬件设计部分。 (1)按键硬件设计。 (2)无源蜂鸣器硬件设计。 2、阻塞式和非阻塞式编程思想。 (1)阻塞式设计效果,代码举例测试。 (2)外部中断式设计效果,代码举例测试。 (3)非阻塞式设计。 3、按键FIFO实现。 (1)FIFO设计思路,看教程文档。 (2)测试按键效果,感性认识下。 (3)调试状态FIFO变化,调试看FIFO (4)代码说明 4、蜂鸣器驱动新式实现。

01

09.字符设备驱动

1.写出最底层Led_Open(),Led_Write(),Led_Read()   2.如何让内核知道下面有我们写好的操作硬件的函数呢?定义一个file_operations结构体(指向Led_Open等底层函数)。使用函数regsiter_chrdev(major,”first_drv”,&first_drv_fops)注册告诉内核(通过major索引)。   3.regsiter_chrdev被谁调用?被驱动入口函数调用。first_drv_init()   4.如何知道调用first_drv_init(),还是其他的函数呢?利用宏module_init(first_drv_init)定义一个结构体,结构体中有函数指针,指向入口函数。   5.出口函数first_drv_exit。卸载驱动unregsiter_chrdev(major,”first_drv”,&first_drv_fops)。如何知道何时来调用first_drv_exit?module_init(first_drv_exit)定义一个结构体,结构体中有函数指针,指向入口函数。

02
领券