
Linux驱动
文章平均质量分 95
记录Linux驱动学习笔记
热爱嵌入式的小佳同学
欢迎学习交流+vx:jiayouxjjwu。 嵌入式领域优质创作者、阿里云社区专家博主、古月居(机器人+嵌入式类的原创技术平台)签约作者,专注于嵌入式单片机,Linux应用和驱动开发。
展开
-
Linux系统对中断的处理
假设irq_desc[A].handle_irq是XXX_gpio_irq_handler(XXX指厂家),这个函数需要读取芯片的GPIO控制器,细分发生的是哪一个GPIO中断(假设是B),再去调用irq_desc[B]. handle_irq。最核心的结构体是irq_desc,之前为了易于理解,我们说在Linux内核中有一个中断数组,对于每一个硬件中断,都有一个数组项,这个数组就是irq_desc数组。对于共享中断,比如GPIO中断B,它的中断来源可能有多个,每个中断源对应一个中断处理函数。原创 2025-04-07 12:03:21 · 1022 阅读 · 0 评论 -
Linux驱动入门——设备树详解
随着ARM芯片的流行,内核中针对这些ARM板保存有大量的、没有技术含量的文件。于是,Linux内核开始引入设备树。设备树并不是重新发明出来的,在Linux内核中其他平台如PowerPC,早就使用设备树来描述硬件了。原创 2025-04-02 22:46:34 · 1082 阅读 · 0 评论 -
Linux 驱动入门(8)—— SPI驱动
常见示例:引脚含义DO(MOSI)SPI主控用来发出数据,SPI从设备用来接收数据DI(MISO)SPI主控用来发出数据,SPI从设备用来接收数据SCKSerial Clock,时钟CSChip Select,芯片选择引脚数模转换器 (DAC) 是一种与模数转换器功能相反的器件,可以将数字形式的数据转换为相应的模拟电压信号。通用 DAC 模块是 12 位字转换器,带有两个支持立体声音频的输出通道。原创 2025-02-24 08:00:00 · 1585 阅读 · 0 评论 -
Linux 驱动入门(7)—— I2C驱动
I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因在后面有说到)。怎么通过I2C传输数据,我们需要把数据从主设备发送到从设备上去,也需要把数据从从设备传送到主设备上去,数据涉及到双向传输。举例:设备地址为 0x50 的EEPROM,要读取它里面存储地址为 0x10 的一个字节,应该构造几个i2c_msg?当它就绪后,就可以不再驱动三极管,这是上拉电阻把SCL变为高电平,其他设备就可以继续使用I2C总线了。原创 2025-02-23 08:00:00 · 1285 阅读 · 0 评论 -
Linux 驱动入门(6)—— IRDA(红外遥控模块)驱动
红外遥控被广泛应用于家用电器、工业控制和智能仪器系统中,像我们熟知的有电视机盒子遥控器、空调遥控器。红外遥控器系统分为发送端和接收端,如图下图所示:发送端就是红外遥控器,上面有许多按键,当我们按下遥控器按键时,遥控器内部电路会进行编码和调制,再通过红外发射头,将信号以肉眼不可见的红外线发射出去。红外线线虽然肉眼不可见,但可以通过手机摄像头看到,常用该方法检查遥控器是否正常工作。原创 2025-02-22 21:30:37 · 1204 阅读 · 0 评论 -
Linux 驱动入门(5)—— DHT11(温湿度传感器)驱动
DHT11 是一款可测量温度和湿度的传感器。比如市面上一些空气加湿器,会测量空气中湿度,再根据测量结果决定是否继续加湿。DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,具有超小体积、极低功耗的特点,使用单根总线与主机进行双向的串行数据传输。DHT11测量温度的精度为±2℃,检测范围为-20℃-60℃。湿度的精度为±5%RH,检测范围为5%RH-95%RH,常用于对精度和实时性要求不高的温湿度测量场合。原创 2025-02-22 20:24:38 · 1069 阅读 · 0 评论 -
Linux 驱动入门(4)—— SR04(超声波)驱动
在这里主要记录学习韦东山老师Linux驱动课程的笔记,韦东山老师的驱动课程讲的非常好,想要学习驱动的小伙伴可以去b站学习他的课程。超声波测距模块是利用超声波来测距。模块先发送超声波,然后接收反射回 来的超声波,由反射经历的时间和声音的传播速度340m/s,计算得出距离。SR04 是一款常见的超声波传感器,模块自动发送 8 个 40KHz 的方波,自动检测是否有信号返回,用户只需提供一个触发信号,随后检测回响信号的时间长短即可。原创 2024-08-16 00:30:00 · 1083 阅读 · 0 评论 -
Linux 驱动入门(3)—— SR501(人体红外模块)驱动
人体都有恒定的体温,一般在 37 度,所以会发出特定波长 10uM 左右的红外线,被动式红外探头就是靠探测人体发射的 10uM 左右的红外线而进行工作的。人体发射的 10uM 左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。人体红外模块是一种能够检测人或动物发射的红外线而输出电信号的传感器。广泛应用于各种自动化控制装置中。原创 2024-08-15 00:00:00 · 1147 阅读 · 0 评论 -
Linux 驱动入门(2)—— LED驱动
在这里主要记录学习韦东山老师Linux驱动课程的笔记,韦东山老师的驱动课程讲的非常好,想要学习驱动的小伙伴可以去b站学习他的课程。原创 2024-08-13 10:32:36 · 1519 阅读 · 0 评论 -
Linux 驱动入门(1)—— hello驱动
在这里主要记录学习韦东山老师Linux驱动课程的笔记,韦东山老师的驱动课程讲的非常好,想要学习驱动的小伙伴可以去b站学习他的课程。原创 2024-08-12 15:43:27 · 1179 阅读 · 0 评论 -
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯
Linux驱动入门 —— 利用引脚号操作GPIO进行LED点灯原创 2023-12-14 01:45:00 · 3863 阅读 · 3 评论 -
Linux驱动入门 —— 利用寄存器操作GPIO进行LED点灯
Linux驱动入门 —— LED点灯驱动程序原创 2023-12-13 01:15:00 · 1797 阅读 · 2 评论 -
Linux驱动入门——编写第一个驱动
Linux驱动入门——编写第一个驱动Hello 驱动原创 2023-12-11 20:45:39 · 2606 阅读 · 0 评论