树莓派驱动开发--iic篇(JY901S陀螺仪的三轴角度简单读取)

前言:既然大家都到了这步,想必对驱动开发有着一定的理解啦吧!!那我在前面说一下流程:

修改编译设备树》》》编写编译驱动文件》》》编写编译app文件》》》ftp挂载将前面3复制到树莓派的对应位置》》》加载驱动模块》》》运行测试app

流程举一反三,先去学会我的那篇树莓派驱动开发--点亮led,即可按上述步骤完成iic开发。

一、修改编译设备树

打开文件bcm2711-rpi-4-b.dtb

这个文件主要是树莓派厂家的板载设备的描述文件,比如音频,串口,等。

厂家考虑到开发者的便捷性,提前对一些外设进行了描述。如下图:

厂家把spi的引脚复用等都描述好,开发者只需在运用到时追加具体的设备信息即可,而无需考虑哪些引脚能复用成spix,这样是不是就方便很多了!

往下,

我们将使用iic1驱动jy901s,从上图我们可得知使用的是2 3 这两个引脚!

再往下,

我们往i2c1追加内容,看,pincrtl直接引用了i2c1_pin,是不是就是我说的,用到时直接拿,方便!

红框内便是jy901s的信息,0x50是设备地址;

改好后,编译可得新的bcm2711-rpi-4-b.dtb.

二、编写驱动、app文件

这里我直接参考正点原子的。这里不要贴代码,比如篇幅大。放网盘

链接:https://pan.baidu.com/s/1nvEqah5w6NlIQ-7RG5vu7g?pwd=hsw1

提取码:hsw1

三、ftp挂载

然后,bcm2711-rpi-4-b.dtb替换到/boot/

JY901SAPP32和JY901S.ko拿到/lib/modules/5.15.92-v8+/

四、测试

进入/lib/modules/5.15.92-v8+/ 执行

复制代码
sudo insmod JY901S.ko

然后,lsmod,

成功加载,然后执行

复制代码
sudo ./JY901SAPP32 /dev/JY901S

成功读取,数据飘的要死,我的焊接问题,或者是还要先写某些寄存器,我只是简单驱动哈!

相关推荐
傲世仙尊6 小时前
TCP报头全解-序号确认应答与可靠性是一个准数
驱动开发·网络协议·tcp/ip
sukalot1 天前
Windows 驱动实例分析系列:libwdi 驱动分析 - libwdi 篇(五)
windows·驱动开发
沫璃染墨1 天前
《从零入门Linux系统篇(五十六):线程篇·九——生产者消费者模型:从条件变量到BlockingQueue实现》
linux·服务器·c++·驱动开发·设计模式·架构·系统架构
傲世仙尊1 天前
UDP底层与守护进程化-报头结构体skbuff指针移动与自成会话
驱动开发·网络协议·udp
沫璃染墨2 天前
《从零入门Linux系统篇(五十四):线程篇·七——互斥锁底层原理:从原子交换到线程竞争与锁实现》
linux·运维·服务器·开发语言·c++·驱动开发·系统架构
海盗12343 天前
微软技术日报 2026-10-01:VS Code 1.140 让模型互相挑错,EWS 今天起关停
人工智能·驱动开发·microsoft·机器人·aigc
铅笔小新z3 天前
【stm32】SPI Flash 驱动开发
驱动开发·stm32·嵌入式硬件
夜听莺儿鸣4 天前
502-002_Linux驱动开发模块化编程
linux·驱动开发·模块化编程
wixzjsh4 天前
i.MX6ULL LCD 驱动开发实战:从引脚到时钟的完整配置
驱动开发
路溪非溪4 天前
Linux中环境变量的问题总结
linux·运维·开发语言·驱动开发