def getPiI2CBusNumber():
return 1 if Adafruit_I2C.getPiRevision() > 1 else 0
/dev/i2c
这个小妖精
于是
ls /dev/ |grep i2c
果然没有。
接下来debug:
首先查看i2c模块装了没:
lsmod |grep i2c
发现是有的。
经过查询发现是i2c interface没开
sudo raspi-config
找到interface

找到I2C

然后enable就可以了
接下来再康康有没有/dev/i2c
ls /dev |grep i2
发现有的。

再i2cdetect一下
sudo i2cdetect -y 1
然后重新run一下代码,没有报错了。
https://www.raspberrypi-spy.co.uk/2014/11/enabling-the-i2c-interface-on-the-raspberry-pi/
项目场景:树莓派小车连接开发问题描述:Adafruit_I2C. getPiI2CBusNumber():Error: File or directory not exist. 原因分析:查看函数:def getPiI2CBusNumber(): # Gets the I2C bus number /dev/i2c# return 1 if Adafruit_I2C.getPiRevision() > 1 else 0发现是/dev/i2c#这个小妖精
前提:insmod i2c-gpio-custom bus0=0,X1,X2安装没有问题;(X1、X2表示可以的GPIO口)检查:下面路径下是否有i2c-dev.ko如果有:root@JoySince:/lib/modules/3.10.49# ls i2c-
i2c-dev.ko i2c-gpio-custom.ko
root@JoySince:/lib/modules/3.1...
/**********************************************************************
* /dev/i2c-*不见了
* 说明:
* 能在他的系统中没找到/dev/i2c-*设备,发现是内核中没有打开对应的驱动。
* ...
今天碰到一个tp的代码,在probe函数里面,如果检查i2c地址失败,则将i2c地址设为另一个,我始终没明白,后面
问了下写这个代码的人,才知道原来当probe如果执行不成功,那这个i2c地址就会被内核列入一个类似“黑名单”的地方,
如果下次再有驱动用这个i2c地址来注册时,内核就不会去执行。这样会导致一个问题,两个同类型的产品,如果使用
同样的i2c地址,这样就会导致一个的驱动加载不成功,
转自:http://lhsblog01.blog.163.com/blog/static/1020045192010221103944423/
i2c bus
2010-03-21 22:39:44| 分类:
linux 驱动 | 标签:
|字号大中小 订阅
垃圾问题汇总记录
这里写目录标题垃圾问题汇总记录我的小车配置中间遇到的问题汇总VM虚拟机卡死问题问题描述:Error opening serial:could not open port /dev/rikibase树莓派连了显示屏没有反应问题:param' attribute must be set for non-dictionary values
我的小车配置
1.stm32F103驱动,我猜是通过串口连一个树莓派3b+,加上slam雷达Rplidar
2.然后学习环境搭建的话,可以跟着视频搭建,也可以
# 设置G
PIO输出
G
PIO.setup(motor1_
pin1, G
PIO.OUT)
G
PIO.setup(motor1_
pin2, G
PIO.OUT)
G
PIO.setup(motor2_
pin1, G
PIO.OUT)
G
PIO.setup(motor2_
pin2, G
PIO.OUT)
# 定义小车前进函数
def forward():
G
PIO.output(motor1_
pin1, G
PIO.HIGH)
G
PIO.output(motor1_
pin2, G
PIO.LOW)
G
PIO.output(motor2_
pin1, G
PIO.HIGH)
G
PIO.output(motor2_
pin2, G
PIO.LOW)
# 定义小车后退函数
def backward():
G
PIO.output(motor1_
pin1, G
PIO.LOW)
G
PIO.output(motor1_
pin2, G
PIO.HIGH)
G
PIO.output(motor2_
pin1, G
PIO.LOW)
G
PIO.output(motor2_
pin2, G
PIO.HIGH)
# 定义小车左转函数
def left():
G
PIO.output(motor1_
pin1, G
PIO.LOW)
G
PIO.output(motor1_
pin2, G
PIO.HIGH)
G
PIO.output(motor2_
pin1, G
PIO.HIGH)
G
PIO.output(motor2_
pin2, G
PIO.LOW)
# 定义小车右转函数
def right():
G
PIO.output(motor1_
pin1, G
PIO.HIGH)
G
PIO.output(motor1_
pin2, G
PIO.LOW)
G
PIO.output(motor2_
pin1, G
PIO.LOW)
G
PIO.output(motor2_
pin2, G
PIO.HIGH)
# 定义小车停止函数
def stop():
G
PIO.output(motor1_
pin1, G
PIO.LOW)
G
PIO.output(motor1_
pin2, G
PIO.LOW)
G
PIO.output(motor2_
pin1, G
PIO.LOW)
G
PIO.output(motor2_
pin2, G
PIO.LOW)
# 小车前进
forward()
# 延时2秒
time.sleep(2)
# 小车停止
stop()
# 清理G
PIO
G
PIO.cleanup()
希望这个代码示例能够帮助到您。如果您有任何
问题,请随时问我。
qq_59729131: