最近飞兆杯的比赛选择了循迹小车,其中用到的ldc1314芯片是基于I2c通信的,虽然项目并没有成功,但是还是学习了树莓派的I2c通信相关的一些知识!

一、配置I2C接口,读取i2c设备的地址

1、可以通过raspi-config配置工具配置使能I2C,或者通过编辑/boot/config.txt文件,加入一下一行内容:

dtparam=i2c1=on

dtparam=i2c_arm=on

2、安装I2C库和工具

$sudo apt-get install i2c-tools

3、当连接上I2C设备后,可以通过以下命令查看

$sudo i2cdetect -y -a 1

其中2a就是我们的ldc1314模块的i2c通信地址

二、对i2c设备寄存器的读写

1、设备所有数据的读出

sudo i2cdump -y 1 0x2a

-y        代表取消用户交互过程,直接执行命令

1         代表I2C设备号

0x2a   代表I2C设备地址

该命令会到处0x00到0xFF地址范围内的所有数据,如图所示

2、数据的写入

使用

sudo i2cset -y 1 0x2a 0x1a 0x55

即可向设备地址为0x2a的0x1a寄存器地址写入0x55

-y        代表取消用户交互过程,直接执行命令

1         代表I2C设备号

0x2a   代表I2C设备地址

0x1a   代表寄存器地址

0x55   代表向寄存器写入的数据

3、寄存器数据读出

sudo i2cget -y 1 0x2a 0x1a

即可读出总线地址为0x2a设备的0x1a寄存器地址的数据

-y        代表取消用户交互过程,直接执行命令

1         代表I2C设备号

0x2a   代表I2C设备地址

0x1a   代表寄存器地址

4、对16位数据的读

在基本的命令后加上  w  即可实现

三、i2c编程

因为使用树莓派我一直使用的语言是Python,故i2c编程只学到了Python

首先需要安装smbus库

sudo apt-get install python-smbus

示例代码如下

importsmbusimporttime

bus= smbus.SMBus(1)

addr=0x2arecount_th0=0x1a

#对8位数据的读写

data=bus.read_byte_data(address,recount_th0)printdata

bus.write_byte_data(address,recount_th0,0x99)#对16位数据的读写

data=bus.read_word_data(address,recount_th0)printdata

bus.write_word_data(address,recount_th0,0x01d6)

注:bus = smbus.SMBus(1)在树莓派版本2中,I2C设备位于/dev/I2C-1,所以此处的编号为1

四、速率相关

1、查看I2C设备的速率

sudo cat /sys/module/i2c_bcm2708/parameters/baudrate

默认的I2C速度为100KHz,对于多数I2C设备而言100KHz并不算快,但是对于个别的I2C设备而言100KZH还是太快了,那么也可以修改I2C的速率使得通信更稳定。

2、修改速率

进入/etc/modprobe.d 目录,并在该目录下新建一个costom.conf文件,在该文件中插入options i2c_bcm2708 baudrate=32000,32000便为新的I2C速率,最后请重启系统。

cd /etc/modprobe.d #进入/etc/modprobe.d 目录

sudo nano custom.conf #在该目录新建一个名为custom.conf文件,并插入以下内容

#options i2c_bcm2708 baudrate=32000

sudo reboot #重启系统

五、参考资料

树莓派安装smbus_树莓派学习之I2C通信相关推荐

  1. 树莓派安装smbus_树莓派使用smbus不兼容问题(no module named 'smbus')

    树莓派使用smbus不兼容问题(no module named 'smbus') python3.5–3.6可以使用smbus2代替smbus 1. 先参考以下方法: github讨论 树莓派社区 2 ...

  2. 树莓派安装smbus_如何配置树莓派并安装有用的库

    概述 Raspberry Pi的一大优点是它具有一个GPIO连接器,您可以在该GPIO连接器上连接外部硬件. GPIO连接器实际上有许多不同的类型对他们的联系.有 True GPIO(通用输入输出)引 ...

  3. 树莓派安装python2idle_树莓派开发日记2——Linux!python!GPIO!

    说起树莓派和PC的不同,首先就是操作系统,树莓派装的是"Raspbian"(Debian的定制版)是Linux的一种发行版.是Linux当然要用命令行了(不然怎么高大上),来打开终 ...

  4. centos树莓派安装mysql_树莓派3B+安装CentOS7

    新入手了一块树莓派,没搞过原生的操作系统,所以打算安装CentOS,过程中的踩坑记录如下. 下载CentOS镜像 树莓派使用闪存卡做为自身的磁盘使用,所以需要预先在其它电脑上烧录好系统镜像到闪存卡上. ...

  5. 打印机 树莓派安装cpus_树莓派安装网络打印机

    最近社区流行树莓派摄像头结合打印机的案例,社区的案例打印机以热敏打印机为主,但安装教程较少:我手头只有一台HP LaserJet 400 M401dn打印机,打可以设置独立IP支持网络共享打印:在参考 ...

  6. 打印机 树莓派安装cpus_树莓派3-搭建网络打印机服务器(支持PC,IPhone,Android打印)...

    搭建网络打印机服务器 说明 利用树莓派3连接USB打印机来设置成网络打印机 安装cups 安装cups apt-get update apt-get install cups 允许pi用户配置CUPS ...

  7. 树莓派安装rt-linux,树莓派安装OpenWRT做路由器图文详解

    来自树莓派实验室创客群 Archer 的投稿,在此表示感谢! 在玩OP之前,你需要一个靠谱的以太网卡,一个型号为RTL8192CU,AR9271的无线网卡(官方芯片的无线网卡都可以),随便大小的SD卡 ...

  8. 树莓派安装FFTW,linux安装库不生成.so库,拷贝.so .a,按时间查看文件的命令

    目录 1.树莓派安装FFTW 2.不生成.so库的问题 3.从.a生成.so 4.直接复制.so .a 5.按时间查看文件 1.树莓派安装FFTW 树莓派安装fftw_zhangjun62的博客-CS ...

  9. 树莓派4B学习笔记——IO通信篇(UART)

    文章目录 UART简介 树莓派使用UART与串口屏通信 串口屏简介 硬件连接 配置串口接口 树莓派打开UART接口 树莓派安装串口调试助手 编程实现 wiringSerial.h Serial简介 C ...

  10. 树莓派学习笔记——I2C设备载入和速率设置

    1.载入设备 方法1--临时载入设备 sudo modprobe -r i2c_bcm2708 #卸载设备 -r代表removesudo modprobe i2c_bcm2708 #重新载入设备 方法 ...

最新文章

  1. Python的零基础超详细讲解(第十二天)-Python函数及使用
  2. 利用TensorFlow和神经网络来处理文本分类问题
  3. Redis对象的refcount与lru属性(内存回收、对象共享、空转时长)
  4. 前端学习(1182):差值表达式
  5. 服务器ping多少网站打开正常,服务器网站ping异常问题解析
  6. 洛谷 P3372 【模板】线段树 1
  7. MFC常见控件:滚动条控件
  8. 我的梦想——吃喝玩乐
  9. RocketMq最佳实践
  10. 四种方法实现两个等大数组之间内容交换
  11. Elasticsearch+Hbase实现海量数据秒回查询
  12. HTML5期末大作业:影评网站的设计--豆瓣以及IMDb等影评网站
  13. python批量将PPT导出成图片集
  14. CentOS 7 下的软件安装方法及策略
  15. 输入年份和月份,判断是否闰年?并根据月份判断是什么季节和有多少天
  16. mongodb 副本集测试
  17. 【CocosBuilder 开发系列之一】cocos2dx使用CocosBuilder(编辑器)完成基础骨骼动画
  18. 互联网原子弹,AI界的卡丽熙,下岗工人制造机...GPT-3已成精
  19. 高考招生计划数据采集系统设计
  20. OpenLayers 彻底清除测量图层Overlays

热门文章

  1. 计算机机房设备使用管理,机房设备使用管理制度
  2. 电脑突然无法连接网络,如何处理(主要是针对QQ、微信可以登录,网页无法进入)
  3. 微软雅黑字体,百度云下载
  4. 桌面组件开发学习笔记
  5. 2020年上半年信息安全工程师上午选择题及解析
  6. swfupload 实例 php,SWFUpload在PHP中使用实例教程
  7. win10系统服务器不能创建对象,教你win10系统activex部件不能创建对象的解决教程...
  8. dw添加下拉菜单_Dreamweaver怎么创建下拉菜单
  9. 如何做好企业SWOT分析?用这个企业项目设计工具就足够了!
  10. 十六进制转换成二进制matlab,在matlab中十六进制到二进制和十进制