Linux Kernel 4.19+内核使用GPIO模拟I2C的方法

1.修改内核配置文件,使内核支持GPIO模拟I2C

复制代码
//开启方式
make menuconfig
Device Drivers --->
	<*> I2C support  --->
		I2C Hardware Bus support  ---> 
			<*> GPIO-based bitbanging I2C

2.对应的dts里面增加GPIO模拟I2C的设备树

复制代码
注意头文件:#include <dt-bindings/gpio/gpio.h>
	i2c@0 {
		compatible = "i2c-gpio";
		sda-gpios = <&gpio_chip16 3 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		scl-gpios = <&gpio_chip16 4 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
		i2c-gpio,delay-us = <2>;	/* ~100 kHz */
		#address-cells = <0>;
		#size-cells = <0>;
	};

编译后烧写,会发现/dev下多了一个i2c总线,多出来的那个就是了。

相关推荐
非鱼䲆鱻䲜13 分钟前
淘晶驰串口屏使用波形图控件,接收单片机或者串口助手数据生成图像的区别
单片机·嵌入式·串口屏
筱白爱学习1 小时前
RestHighLevelClient详细使用手册
linux·服务器·php
若谷老师1 小时前
21.WSL中部署gnina分子对接程序ds
linux·人工智能·ubuntu·卷积神经网络·gnina·smina
ChenYY~2 小时前
入门分享篇:一、工欲善其事,必先利其器
计算机·程序员·机器人·嵌入式·typora·工具·软件开发·obsidian
啊辉的科研4 小时前
植物单细胞RNA-seq分析教程3-2025年版
linux·r语言
Norach4 小时前
ubuntu22.04安装ssh-server与realvnc-server
linux·服务器·经验分享·ubuntu·ssh·vnc
UP_Continue4 小时前
Linux--进程间通信
linux·运维·服务器
kaoa0004 小时前
Linux入门攻坚——67、MySQL数据库-4
linux·运维·数据库·mysql
蓝天居士5 小时前
VMware Workstation挂载共享文件夹(2)
linux·ubuntu
prince_zxill5 小时前
在 Ubuntu 系统下安装 Nanobot:全面指南
linux·运维·ubuntu