树莓派高级GPIO库,wiringpi2 for python使用笔记(五)i2c读取测试

wiringpi2显然也把i2c驱动带给了Python,手头上正巧有一个DS3231的模块,上边带了一个DS3231 RTC(实时时钟),与一片24C32,两个芯片均为iic总线设备,与树莓派接线如下:




也就是VCC GND SDA SCL四个脚分别接到树莓派的1(3.3v)、9(0v)、3(SDA.1)、5(SCL.1)上,因为树莓派的I2C接口默认是关闭的,需要先编辑一下/boot/config.txt,去掉 device_tree_param=i2c_arm=on上的注释(ArchlinuxARM RasperryPi2),然后*簦ㄗⅲ篟aspbian可以用raspi-config打开)



然后*簦*敉瓿珊螅诵



modprobe i2c-dev

若想这个模块自动装载,请把它写到?? /etc/modules-load.d/raspberrypi.conf

安装i2c-tools,Archlinux下为:



pacman ?S i2c-tools

安装后,运行i2cdetect ?y 1结果如下:



嗯,发现了57,68两个设备,哪个是DS3231,哪个又是24C32呢,我们把里边的数据dump出来看看:




可以看到0x57设备里边是空的,应该就是24C32了,0x68里边读出来20个字节,就是DS3231了。


我先解释下这几个命令:


i2cdetect顾名思义就是搜索i2c总线的设备,树莓派有2条i2c总线,咱们接的SDA.1,SCL.1,当然就是搜索1这条总线了(另外一条是SDA.0 SCL.0)


-y参数没啥意义,就是自己帮你按下y(yes).


i2cdump也很容易理解,就是dump出指定总线,指定设备的数据这里是1总线0x57 0x68两个设备。-y参数跟上个命令是一样的。


这样,我们的i2c设备就都通讯上了,下边就是用wiringpi2库读写之。


wringpi中操作i2c设备的函数主要有一下几个:


wiringPiI2CSetup() #这个函数的作用是初始化i2c设备,并返回一个设备对象(句柄),接下来,就是使用


wiringPiI2CRead()


wiringPiI2CReadReg16()??


wiringPiI2CReadReg8()?


wiringPiI2CWrite()


wiringPiI2CWriteReg16()


wiringPiI2CWriteReg8()


等函数来操作I2C总线设备了。


经过查阅DS3231的手册,DS3231的第一个寄存器值,读出的是秒,我们就读一下这个地址,代码比较简单,就直接在python shell里边写下来执行就行了代码如下“

可以看到,我们读出来了秒,我们把程序写进文件,一秒钟读一次:



import wiringpi2 as wpi

ds=wpi.wiringPiI2CSetup(0x68)
while True:
sec=wpi.wiringPiI2CReadReg8(ds,0)
print(sec,end=,flush=True)
wpi.delay(1000)

结果……



原来,这个RTC时钟读出来的是BCD码,比如9以后就是16,16的二进制为0001(1) 0000(0),4位一组,就是10,我编写了个小函数,把BCD码转换成10进制输出:



import wiringpi2 as wpi

def b2s(bcd):
return (bcd>>4)*10+(bcd&0xf) #高4位*10加上低四位

ds=wpi.wiringPiI2CSetup(0x68)
while True:
sec=wpi.wiringPiI2CReadReg8(ds,0)
print(b2s(sec),end=,flush=True)
wpi.delay(1000)


呼呼终于正常了。



转载于:https://www.cnblogs.com/yafengabc/p/5107768.html






相关资源:树莓 wiringPi 用户手册新版本 2019-9-12.pdf

相关文档

  • 怎么设置硬件防火墙
  • 类加载机制
  • 初二男孩一心想着电脑游戏怎么办
  • 小学生课间打闹检讨书
  • 打印机,复印机和扫描仪一体机容易坏吗求大神帮助
  • 儿童故事关于蛇的故事大全
  • 【实用】学习计划集合9篇
  • 金钱的名言警句有哪些
  • 古诗咏柳的意思是什么
  • 连麦吗我萝莉音是什么意思?
  • SOC片上系统 和 NOC片上网络 基础
  • 什么是重大交通事故
  • 淮安有哪些好玩的地方淮安哪里好玩景点排名
  • 数据库的乐观锁和悲观锁的理解和使用?
  • 白桦茸的功效与作用_白桦茸的吃法
  • 币圈炒币如何避免被额韭菜?这3点要掌握
  • 山芹菜怎么保存山芹菜可以放冰箱吗
  • 治疗消化不良的小偏方
  • 2020年培训学校工作总结
  • 《海的女儿》的读后感范文400字精选12篇
  • 蝴蝶结铅笔画的图片
  • 打牙跌嘴是什么意思
  • 宴会之中生变故***猜谜***中国地名
  • 淡水路亚钓鱼技巧
  • 我是一条欢快奔流的小河五年级作文
  • 高品质小型SUV哪款好
  • 城管关于爱岗敬业的演讲稿范文
  • 卡通史努比怎么画简单好看 史努比的画法步骤简笔画图片
  • 2020年大班新学期寄语
  • 跳高前如何热身
  • 电脑版