def getPiI2CBusNumber():
    # Gets the I2C bus number /dev/i2c#
    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.然后学习环境搭建的话,可以跟着视频搭建,也可以
# 设置GPIO输出 GPIO.setup(motor1_pin1, GPIO.OUT) GPIO.setup(motor1_pin2, GPIO.OUT) GPIO.setup(motor2_pin1, GPIO.OUT) GPIO.setup(motor2_pin2, GPIO.OUT) # 定义小车前进函数 def forward(): GPIO.output(motor1_pin1, GPIO.HIGH) GPIO.output(motor1_pin2, GPIO.LOW) GPIO.output(motor2_pin1, GPIO.HIGH) GPIO.output(motor2_pin2, GPIO.LOW) # 定义小车后退函数 def backward(): GPIO.output(motor1_pin1, GPIO.LOW) GPIO.output(motor1_pin2, GPIO.HIGH) GPIO.output(motor2_pin1, GPIO.LOW) GPIO.output(motor2_pin2, GPIO.HIGH) # 定义小车左转函数 def left(): GPIO.output(motor1_pin1, GPIO.LOW) GPIO.output(motor1_pin2, GPIO.HIGH) GPIO.output(motor2_pin1, GPIO.HIGH) GPIO.output(motor2_pin2, GPIO.LOW) # 定义小车右转函数 def right(): GPIO.output(motor1_pin1, GPIO.HIGH) GPIO.output(motor1_pin2, GPIO.LOW) GPIO.output(motor2_pin1, GPIO.LOW) GPIO.output(motor2_pin2, GPIO.HIGH) # 定义小车停止函数 def stop(): GPIO.output(motor1_pin1, GPIO.LOW) GPIO.output(motor1_pin2, GPIO.LOW) GPIO.output(motor2_pin1, GPIO.LOW) GPIO.output(motor2_pin2, GPIO.LOW) # 小车前进 forward() # 延时2秒 time.sleep(2) # 小车停止 stop() # 清理GPIO GPIO.cleanup() 希望这个代码示例能够帮助到您。如果您有任何问题,请随时问我。
qq_59729131: 看了一圈CSDN没有看到数字同态加密的于是开始魔改大佬代码(谢谢大佬救我水火) 如果加密数字的时候注意18行res = gy.div((x - 1), n)要改成res = (x - 1)//n,不然要么解密结果是一堆数字要么报错TypeError: invert() requires 'mpz','mpz' arguments。 注:以上报错的意思是计算的时候某个变量变成科学计数法不是精确数mpz没法计算