当前位置: 首页 > news >正文

Jetsonnano B01 笔记5:IIC通信

今日继续我的Jetsonnano学习之路,今日学习的是IIC通信,并尝试使用Jetson读取MPU6050陀螺仪数据。文章提供源码。文章主要是搬运的官方PDF说明,这里结合自己实际操作作笔记。

目录

IIC通信:

IIC硬件连线:

 安装IIC库文件:

终端I2C-Tools库的使用:

i2cdetect:

 i2cget:

i2ctransfer:

Python IIC库的使用:

获取权限与环境:

相关库函数:


IIC通信:

 但Jetson与STM32等单片机不同,它只需调用库,读写IIC时序即可

IIC ,也被称为 I2C ,( Inter-Integrated Circuit )是 IICBus 简称,所以中文应该叫集成电路
总线,它是一种串行通信总线。
它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU ( 单片机 )
IIC 模块之间、 IIC 模块与 IIC 模块之间进行双向传送。
IIC 的特点: IIC 是半双工,而不是全双工。
IIC是真正的 多主机总线,(对比SPI在每次通信前都需要把主机定死,而IIC可以在通
讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防
止总线数据被破坏。
起始和终止信号都是由主机发出的,连接到I2C总线上的器件,若具有I2C总线的硬件接
口,则很容易检测到起始和终止信号。
在起始信号后必须发送一个7位从机地址+1位方向位,用“0”表示主机发送数据,“1”表
示主机接收数据。
每当主机向从机发送完一个字节的数据,主机总是需要等待从机给出一个应答信号,以
确认从机是否成功接收到了数据。
起始信号是必需的,结束信号和应答信号,都可以不要。
注:实际使用中,一般是单片机作为主机,其它器件作为从机,单片机先向器件发送信
息表示要读取数据,之后转变传输方向,器件发送数据到单片机。

IIC硬件连线:

IIC通信会使用到Jetson以下引脚:

 安装IIC库文件:

启动 JetsonNano 主板,然后打开命令行终端,依次输入下方指令来安装 I2C 库。
sudo apt-get update

sudo apt-get install -y i2c-tools

这里我是已经安装了库所以提示这个信息:

 指令输入后,会提示输入密码,输入即可~~

安装完成后,可输入下方指令来检查是否安装成功。
apt-cache policy i2c-tools

 

终端I2C-Tools库的使用:

i2cdetect:

i2cdetect 用于检测系统上的 I2C 总线情况。依次输入下方指令,可列出所有安装的总线。
i2cdetect -F 2

 

i2cdetect -l

 依次输入下方指令,可扫描挂载在总线上的设备,例如1号总线。

i2cdetect -y -r -a 1

这是没有连接IIc设备的情况:

当我们连接了MPU6050后,就会发现某处有从器件地址为0x68:

 

 i2cget:

 i2ccget用于查看设备单个寄存器值,可用于单字节寄存器。

 例如读取地址为0x68设备里0x6b寄存器的值,输入下方指令:

i2cget -y 1 0x68 0x6b

i2ctransfer:

i2ctransfer 用于读写设备寄存器值,可用于双字节寄存器。例如向 1 号总线上设备地址
0x68 ,寄存器地址 0x016b 开始, 16 个字节的数据,输入下列指令:
i2ctransfer -f -y 1 w2@0x68 0x01 0x6b r16
例如向 1 号总线上设备地址 0x68 ,寄存器地址 0x016b 开始,写入长度为 3 个字节的数据,
写入 0x25 ,然后读出校验。
i2ctransfer -f -y 1 w3@0x68 0x01 0x6b 0x25

Python IIC库的使用:

获取权限与环境:

获取用户对2C总线操作权限:(yourname是表示你的用户名)

Ssudo usermod -aG i2c $USER
sudo usermod -aG i2c yourname…重启系统确保更改2C等有效一

安装Python3的库:

sudo apt-get install python3-smbus

相关库函数:

网址:smbus2 · PyPI

Currently supported features are:

  • Get i2c capabilities (I2C_FUNCS)

  • read_byte_data

  • write_byte_data

  • read_word_data

  • write_word_data

  • read_i2c_block_data

  • write_i2c_block_data

It is developed on Python 2.7, but should work in Python 3.X too.

相关文章:

Jetsonnano B01 笔记5:IIC通信

今日继续我的Jetsonnano学习之路,今日学习的是IIC通信,并尝试使用Jetson读取MPU6050陀螺仪数据。文章提供源码。文章主要是搬运的官方PDF说明,这里结合自己实际操作作笔记。 目录 IIC通信: IIC硬件连线: 安装IIC库文…...

【网络爬虫笔记】爬虫Robots协议语法详解

Robots协议是指一个被称为Robots Exclusion Protocol的协议。该协议的主要功能是向网络蜘蛛、机器人等搜索引擎爬虫提供一个标准的访问控制机制,告诉它们哪些页面可以被抓取,哪些页面不可以被抓取。本文将进行爬虫Robots协议语法详解,同时提供…...

MATLAB 2022b 中设置关闭 MATLAB 之前进行询问

在 MATLAB 2022b 中可以进行设置,在关闭 MATLAB 之前进行询问,防止意外关闭 MATLAB。如图:...

在SpringBoot框架下,接口有读个实现类,在不改变任何源码的情况下,SpringBoot怎么知道给接口注入哪个实现类的依赖呢?

在Spring Boot框架下,当一个接口有多个实现类时,Spring Boot 默认情况下不知道要注入哪个实现类的依赖。因此,你需要使用一些方法来明确告诉Spring Boot应该注入哪个实现类的依赖。 以下是一些常用的方法: 1.使用Qualifier注解&a…...

探索数据库管理的利器 - PHPMyAdmin

有一个项目,后端由博主独自负责,最近需要将项目交接给另一位同事。在项目初期,博主直接在数据库中使用工具创建了相关表格,并在完成后利用PhpMyAdmin生成了一份数据字典,供团队使用。然而,在随后的开发过程…...

大数据技术原理与应用学习笔记第1章

黄金组合访问地址:http://dblab.xmu.edu.cn/post/7553/ 1.《大数据技术原理与应用》教材 官网:http://dblab.xmu.edu.cn/post/bigdata/ 2.大数据软件安装和编程实践指南 官网林子雨编著《大数据技术原理与应用》教材配套大数据软件安装和编程实践指…...

算法从未放弃你,放弃你的只有你自己

在人生的旅程中,我们常常会遇到各种挫折和困难。有些人在面对困境时,会选择放弃,将责任归咎于命运或外部环境。然而,算法教给我们一个重要的道理:永远不要放弃 当我们遇到问题或挑战时,算法可以帮助我们找到…...

[Linux 基础] linux基础指令(1)

文章目录 1、Linux下基本指令1.ls指令2.pwd指令3.cd指令4.touch指令5.mkdir指令6.rmdir指令 && rm指令7.man指令8.cp指令9.mv指令10.cat指令11.more指令12.less指令 Linux学习笔记从今天开始不断更新了。第一篇我们从基础指令开始学起。 1、Linux下基本指令 好多人都说…...

ESP32蓝牙主从站模式:主站发送,从站接收,同时附加简单通信协议

主站发送:WXAiBj,六个字符 蓝牙模式是一个字符一个字符发送 主站和从站设置通信协议 使得六个字符一句话完整接收,同时打印出接收完成信息 硬件电路连接如下: 主从站为两个ESP32,只使用了其中的蓝牙功能 代码如下: 主站: //主机模式 #include <Arduino.h> …...

Redis布隆过滤亿级大数据

场景描述 小程序用户的openid作为最主要的业务查询字段&#xff0c;在做了缓存设计之后仍有非常高频的查询&#xff0c;通过埋点简单统计约在每日1000w次。 其中&#xff1a;由于有新增用户原因&#xff0c;导致请求的openid根本不存在MySQL数据库中&#xff0c;这部分统计约占…...

车联网仿真工具Veins学习1

准备条件 假如你是一个小白&#xff0c;先找到相关的参考资料&#xff08;已根据上一篇博客安装好Veins&#xff09;&#xff0c;主要是官方文档和相关的博客&#xff0c;官方提供了一个example&#xff0c;我找到的资料如下&#xff1a; Frequently Asked Questions (FAQ) O…...

封闭岛屿数量 -- 二维矩阵的dfs算法

1254. 统计封闭岛屿的数目 这道题和 岛屿数量 – 二维矩阵的dfs算法 类似&#xff0c;区别在于不算边缘部分的岛屿&#xff0c;那其实很简单&#xff0c;把上⼀题中那些靠边的岛屿排除掉&#xff0c;剩下的就是「封闭岛屿」了。 关于岛屿的相似题目&#xff1a; 岛屿数量 –…...

C语言_指针(1)

文章目录 前言一、指针数组1.1利用指针数组模拟出二维数组 二、数组指针2.1数组名是数组首元素的地址2.2 二维数组传参2.3 一级指针传参2.4 二级指针传参 三. 函数指针四 . typedef 重命名 前言 指针数组是由指针组成的数组。它的每个元素都是一个指针&#xff0c;可以指向任何…...

建站系列(一)--- 网站基本常识

目录 相关系列文章前言一、因特网二、网站三、服务器四、IP五、域名六、DNS七、Hosts文件八、端口号九、URL十、静态网站十一、动态网站 相关系列文章 建站系列&#xff08;一&#xff09;— 网站基本常识 建站系列&#xff08;二&#xff09;— 域名、IP地址、URL、端口详解 …...

Codeforces Round 895 (Div. 3) A ~ F

Dashboard - Codeforces Round 895 (Div. 3) - Codeforces A 问多少次能使a 和 b相等&#xff0c;就是abs(a - b) / 2除c向上取整&#xff0c;也就是abs(a - b)除2c向上取整。 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #de…...

【前端知识】Axios——请求拦截器模板

Axios——请求拦截器模板 Axios是一个基于Promise的HTTP客户端&#xff0c;用于发送HTTP请求。它可以在浏览器和Node.js环境中使用&#xff0c;并且提供了许多强大的功能&#xff0c;例如拦截请求和响应、转换请求和响应数据、取消请求等。 Axios具有简单易用的API&#xff0c;…...

企业架构LNMP学习笔记16

基于IP的访问控制&#xff1a; 基于ngx_http_access_module模块&#xff0c;默认可使用。 语法是&#xff1a; deny ip 禁止IP访问 allow ip 允许IP访问 上面是允许的&#xff0c;下面是deny的。 老师建议写在server段中是比较合适的。 基于用户的访问控制&#xff1a; …...

redis实现消息队列

背景 消息队列&#xff08;Message Queue&#xff09;是一种常见的软件架构模式&#xff0c;用于在分布式系统中传递和处理异步消息。它解耦了发送消息的应用程序和接收消息的应用程序之间的直接依赖关系&#xff0c;使得消息的发送者和接收者可以独立地演化和扩展。 消息队列…...

JVM指令集

概述 JVM&#xff0c;Java Virtual Machine&#xff0c;Java虚拟机器&#xff0c;作为一台独立的机器&#xff0c;一般包括独立的指令集、独立的存储体系以及适合机器自身的运算方式&#xff0c;本章节主要是描述JVM指令的功能与作用。 JVM的每个指令的格式是【指令 操作数1操…...

如何用SSH克隆GitHub项目

诸神缄默不语-个人CSDN博文目录 使用场景&#xff1a;由于不可知的网络问题&#xff0c;无法用HTTPS克隆GitHub项目。 报错fatal: unable to access https://github.com/PolarisRisingWar/llm-throught-ages.git/: GnuTLS recv error (-110): The TLS connection was non-pro…...

sqlx库使用指南

sqlx库使用指南 在项目中我们通常可能会使用database/sql连接MySQL数据库。本文借助使用sqlx实现批量插入数据的例子&#xff0c;介绍了sqlx中可能被你忽视了的sqlx.In和DB.NamedExec方法。 sqlx介绍 在项目中我们通常可能会使用database/sql连接MySQL数据库。sqlx可以认为是Go…...

算法篇汇总

文章浏览 I https://leetcode.cn/problems/article-views-i/description/?envTypestudy-plan-v2&envId30-days-of-pandas&langpythondata 我的题解&#xff1a; import pandas as pddef article_views(views: pd.DataFrame) -> pd.DataFrame:dfviews[views[auth…...

typeScript 学习笔记(二)

类接口 TypeScript 入门教程 (xcatliu.com) 十四.类 ① 类 类&#xff1a;定义了一件事物的抽象特点&#xff0c;包含它的属性和方法对象&#xff1a;类的实例&#xff0c;通过new生成面向对象&#xff08;OOP&#xff09;的三大特性&#xff1a;封装、继承、多态封装&…...

redis集群架构详解

一、集群架构搭建 1、配置 在一台机器上模拟多台机器搭建redis集群&#xff0c;一个集群代表一台物理机 集群1路径&#xff1a; /usr/local/redis/redis-cluster/cluster1/9001/redis.conf/usr/local/redis/redis-cluster/cluster1/9004/redis.conf/usr/local/redis/redis-…...

nodejs设置镜像

1、npm镜像地址配置 -- 查看 npm 安装目录 npm root -g-- 查看 npm 配置信息 npm config list-- 查询当前镜像配置 npm get registry-- 或者仅修改 npm 命令镜像 -- 设置为淘宝镜像 npm config set registry https://registry.npmmirror.com -- 修改为官方镜像 npm config set…...

CSS中如何在table中隐藏表格中从第4个开始的多个 <tr> 元素

隐藏指定行 使用 CSS 的 nth-child 选择器来选择表格中的特定行&#xff0c;并隐藏它们。 以下是一个示例 CSS 规则&#xff0c;用于隐藏表格中的第 4 个和第 5 个行&#xff08;索引从 1 开始&#xff09;&#xff1a; table tr:nth-child(4), table tr:nth-child(5) {displ…...

【类和对象】③友元类

文章目录 1.初始化列表2.static静态成员3.友元 1.初始化列表 我们知道在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。虽然调用构造函数之后&#xff0c;对象中已经有了一个初始值&#xff0c;但是不能将其称为对对象中成…...

算法通关村第十六关:黄金挑战:滑动窗口与堆结合

黄金挑战&#xff1a;滑动窗口与堆结合 堆的大小一般是有限的&#xff0c;能直接返回当前位置下的最大值或者最小值 该特征与滑动窗口结合&#xff0c;可以解决一些特定场景的问题 1. 滑动窗口与堆问题的结合 LeetCode239 https://leetcode.cn/problems/sliding-window-maxi…...

6.2.2 【MySQL】InnoDB中的索引方案

上边之所以称为一个简易的索引方案&#xff0c;是因为我们为了在根据主键值进行查找时使用二分法快速定位具体的目录项而假设所有目录项都可以在物理存储器上连续存储&#xff0c;但是这样做有几个问题&#xff1a; InnoDB 是使用页来作为管理存储空间的基本单位&#xff0c;也…...

划片机实现装片、对准、切割、清洗到卸片的自动化操作

划片机是一种用于切割和分离材料的设备&#xff0c;通常用于光学和医疗、IC、QFN、DFN、半导体集成电路、GPP/LED氮化镓等芯片分立器件、LED封装、光通讯器件、声表器件、MEMS等行业。划片机可以实现从装片、对准、切割、清洗到卸片的自动化操作。 以下是划片机实现这些操作的步…...

大地在线影视免费观看/整站优化方案

1. JSON 概述 JSON&#xff08;JavaScript Object Notation, JS 对象标记&#xff09;是一种轻量级的数据交换格式&#xff0c;简洁和清晰的层次结构使得JSON成为理想的数据交换语言。 JSON 支持的数据格式&#xff1a; 对象&#xff08;字典&#xff09;&#xff1a;花括号…...

营销网站模版/成都网站排名生客seo怎么样

异步FIFO为什么要使用格雷码(笔记) 首先要了解的是异步FIFO使用格雷码的唯一目的就是&#xff1a; “即使在亚稳态进行读写指针抽样也能进行正确的空满状态判断”。 那么典型的判断方法是怎样进行的呢&#xff1f;以满状态判断为例&#xff0c;先要对读指针&#xff08;属于读…...

10天搞定网站开发/html网页制作模板

大家好&#xff0c;我是陶然同学&#xff0c;软件工程大三即将实习。认识我的朋友们知道&#xff0c;我是科班出身&#xff0c;学的还行&#xff0c;但是对面试掌握不够&#xff0c;所以我将用这100多天更新Java面试题&#x1f643;&#x1f643;。 不敢苟同&#xff0c;相信大…...

网站建设如何增加二级页面/哈尔滨网站优化流程

20192312 2020-2021-1 实验四 《数据结构与面向对象程序设计》实验报告课程&#xff1a;《程序设计与数据结构》班级&#xff1a; 1923姓名&#xff1a; 吴欣欣学号&#xff1a;20192312实验教师&#xff1a;王志强实验日期&#xff1a;2020年10月30日必修/选修&#xff1a; 必…...

做淘宝客如何引出图片到网站/百度云资源搜索引擎

View Code deletefromStationInfo whereStationID in(selectStationID fromStationInfo groupbyStationID havingCOUNT(StationID)>1)转载于:https://www.cnblogs.com/kingteach/archive/2011/05/23/2054259.html...

网站平台优化/百度客服号码

第2课-数据的艺术 数据结构起源(1) 计算机从解决数值计算问题到解决生活中的问题。 (2) 现实生活中的问题涉及不同个体间的复杂联系。 (3) 需要在计算机程序中描述生活中个体间的。 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系。 关键概念&#xff08;1…...