从零玩转CanMV-K230(7)-I2C例程
文章目录
- 前言
- 一、IIC API
- 二、示例
- 总结
前言
K230内部包含5个I2C硬件模块,支持标准100kb/s,快速400kb/s模式,高速模式3.4Mb/s。 通道输出IO配置参考IOMUX模块。

一、IIC API
I2C类位于machine模块下。
i2c = I2C(id, freq=100000)
【参数】id: I2C ID, [0~4] (I2C.I2C0~I2C.I2C4)freq: I2C时钟频率
i2c.scan()
扫描I2C总线上的从机【参数】无【返回值】list 对象, 包含了所有扫描到的从机地址
i2c.readfrom(addr, len, True)
从总线读取数据【参数】addr: 从机地址len: 数据长度stop: 是否产生停止信号,保留,目前只能使用默认值Ture【返回值】读取到的数据,bytes 类型
i2c.readfrom_into(addr, buf, True)
读取数据并放到制定变量中【参数】addr: 从机地址buf: bytearray类型, 定义了长度,读取到的数据存放在此stop: 是否产生停止信号,保留,目前只能使用默认值Ture【返回值】无
i2c.writeto(addr, buf, True)
发送数据到从机【参数】addr: 从机地址buf: 需要发送的数据stop: 是否产生停止信号,保留,目前只能使用默认值Ture【返回值】成功发送的字节数
i2c.readfrom_mem(addr, memaddr, nbytes, mem_size=8)
读取从机寄存器【参数】addr: 从机地址memaddr: 从机寄存器地址nbytes: 需要读取的长度mem_size: 寄存器宽度, 默认为8位【返回值】返回bytes类型的读取到的数据
i2c.readfrom_mem_into(addr, memaddr, buf, mem_size=8)
读取从机寄存器值到指定变量中【参数】addr: 从机地址memaddr: 从机寄存器地址buf: bytearray类型, 定义了长度,读取到的数据存放在此mem_size: 寄存器宽度, 默认为8位【返回值】无
i2c.writeto_mem(addr, memaddr, buf, mem_size=8)
写数据到从机寄存器【参数】addr: 从机地址memaddr: 从机寄存器地址buf: 需要写的数据mem_size: 寄存器宽度, 默认为8位【返回值】无
i2c.deinit()
释放i2c资源【参数】无【返回值】无
二、示例
from machine import I2Ci2c4=I2C(4) # init i2c4a=i2c4.scan() #scan i2c slave
print(a)i2c4.writeto_mem(0x3b,0xff,bytes([0x80]),mem_size=8) # write hdmi page address(0x80)
i2c4.readfrom_mem(0x3b,0x00,1,mem_size=8) # read hdmi id0 ,value =0x17
i2c4.readfrom_mem(0x3b,0x01,1,mem_size=8) # read hdmi id1 ,value =0x2 i2c4.writeto(0x3b,bytes([0xff,0x80]),True) # write hdmi page address(0x80)
i2c4.writeto(0x3b,bytes([0x00]),True) #send the address0 of being readed
i2c4.readfrom(0x3b,1) #read hdmi id0 ,value =0x17
i2c4.writeto(0x3b,bytes([0x01]),True) #send the address1 of being readed
i2c4.readfrom(0x3b,1) #read hdmi id0 ,value =0x17 i2c4.writeto_mem(0x3b,0xff,bytes([0x80]),mem_size=8) # write hdmi page address(0x80)
a=bytearray(1)
i2c4.readfrom_mem_into(0x3b,0x0,a,mem_size=8) # read hdmi id0 into a ,value =0x17
print(a) #printf a,value =0x17 i2c4.writeto(0x3b,bytes([0xff,0x80]),True) # write hdmi page address(0x80)
i2c4.writeto(0x3b,bytes([0x00]),True) #send the address0 of being readed
b=bytearray(1)
i2c4.readfrom_into(0x3b,b) #read hdmi id0 into b ,value =0x17
print(b) #printf a,value =0x17
总结
本章提供了IIC的API和基本用法例程
相关文章:
从零玩转CanMV-K230(7)-I2C例程
文章目录 前言一、IIC API二、示例总结 前言 K230内部包含5个I2C硬件模块,支持标准100kb/s,快速400kb/s模式,高速模式3.4Mb/s。 通道输出IO配置参考IOMUX模块。 一、IIC API I2C类位于machine模块下。 i2c I2C(id, freq100000) 【参数】…...
n阶Legendre多项式正交性的证明
前言 在《n次Legendre(勒让德)多项式在区间(-1, 1)上根的分布及证明》这篇文章中,我们阐述了Legendre多项式在 [ − 1 , 1 ] [-1,1] [−1,1]上的根分布情况并给出了证明。本文将证明Legendre多项式在 [ − 1 , 1 ] [-1,1] [−1,1]上的正交性质。 正交多项式的定义…...
HarmonyOS NEXT - Dialog 和完全自定义弹框
demo 地址: https://github.com/iotjin/JhHarmonyDemo 组件对应代码实现地址 代码不定时更新,请前往github查看最新代码 在demo中这些组件和工具类都通过module实现了,具体可以参考HarmonyOS NEXT - 通过 module 模块化引用公共组件和utils HarmonyOS NE…...
内容与资讯API优质清单
作为开发者,拥有一套API合集是必不可少的。这个开发者必备的API合集汇集了各种实用的API资源,为你的开发工作提供了强大的支持!无论你是在构建网站、开发应用还是进行数据分析,这个合集都能满足你的需求。你可以通过这些免费API获…...
开源 JS PDF 库比较
原文查看:开源JavaScript PDF Library对比 对于需要高性能、复杂功能或强大支持处理复杂 PDF 的项目,建议选择商业 PDF 库, 如ComPDFKit for Web。但是,如果您的目标只是在 Web 应用程序中显示 PDF,则可以使用几个可靠的开源…...
AnaPico信号源在通信测试中的应用案例
AnaPico信号源在通信测试中的应用案例广泛,涉及多种通信技术和测试需求。以下是一些具体的应用实例: 1. APPH系列信号源分析仪(相位噪声分析仪) APPH系列是一款高性能相位噪声分析仪和VCO测试仪,其不同型号的频率范围…...
《智启新材:人工智能重塑分子结构设计蓝图》
在当今科技飞速发展的时代,新材料的研发宛如一场激烈的竞赛,而人工智能(AI)作为一匹黑马,正以前所未有的速度和力量驰骋于这片赛场,为新材料的分子结构设计带来了革命性的突破,成为推动行业发展…...
进阶岛-L2G5000
茴香豆:企业级知识库问答工具 茴香豆本地标准版搭建 环境搭建 安装茴香豆 知识库创建 测试知识助手 Gradio UI 界面测试...
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
一,简介 一般来说,公司有很多系统使用,为了实现统一的用户名管理和登录所有系统(如 GitLab、Harbor 等),并在员工离职时只需删除一个主账号即可实现权限清除,可以采用 单点登录 (SSO) 和 集中式…...
PaddlePaddle飞桨Linux系统Docker版安装
PaddlePaddle飞桨Linux系统Docker版安装 最近学习和了解PP飞桨,一切从安装开始。官网的安装教程很详细: https://www.paddlepaddle.org.cn/install/quick?docurl/documentation/docs/zh/install/docker/linux-docker.html 记录我在安装过程中遇到的问题…...
一款基于.NET开发的简易高效的文件转换器
前言 今天大姚给大家分享一款基于.NET开发的免费(GPL-3.0 license)、简易、高效的文件转换器,允许用户通过Windows资源管理器的上下文菜单来转换和压缩一个或多个文件:FileConverter。 使用技术栈 ffmpeg:作为文件转换…...
Spring Boot教程之三十一:入门 Web
Spring Boot – 入门 Web 如今,大多数应用程序都需要模型-视图-控制器(MVC) 架构来满足各种需求,例如处理用户数据、提高应用程序效率、为应用程序提供动态特性。它主要用于构建桌面图形用户界面 (GUI),但现在越来越流行用于构建基于 Web 的…...
青少年编程与数学 02-004 Go语言Web编程 20课题、单元测试
青少年编程与数学 02-004 Go语言Web编程 20课题、单元测试 一、单元测试(Unit Testing)二、集成测试(Integration Testing)三、区别四、Go Web单元测试使用testing包使用testify框架使用GoConvey框架 五、应用示例步骤 1: 创建HTT…...
概率论 期末 笔记
第一章 随机事件及其概率 利用“四大公式”求事件概率 全概率公式与贝叶斯公式 伯努利概型求概率 习题 推导 一维随机变量及其分布 离散型随机变量(R.V)求分布律 利用常见离散型分布求概率 连续型R.V相关计算 利用常见连续型分布的计算 均匀分布 正态…...
Typesense:开源的高速搜索引擎
在当今数据驱动的世界中,高效、快速且智能的搜索能力是任何应用程序和网站成功的关键因素之一。无论是电商平台、内容管理系统还是社交媒体,用户都希望能够迅速找到所需信息。Typesense,作为一款优秀的开源搜索引擎,旨在通过其卓越…...
【vue】圆环呼吸灯闪烁效果(模拟扭蛋机出口处灯光)
效果图先发: 页面部分: <div ref"round" class"round"><div class"light" ref"light"/><div class"box"></div></div>js部分(控制圆环生成); setRound…...
飞牛 fnos 使用docker部署 Watchtower 自动更新 Docker 容器
Watchtower 简介 Watchtower 是一款开源的 Docker 容器管理工具,主要功能为自动更新运行中的 Docker 容器,支持自动拉取镜像并更新容器、配置邮件通知以及定时执行容器更新任务。 用 compose 搭建 Watchtower 的步骤 新建文件夹:在任意位置…...
《信管通低代码信息管理系统开发平台》Linux环境安装说明
1 简介 信管通低代码信息管理系统应用平台提供多环境软件产品开发服务,包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发,满足其独特需求。无论是简单的应用还是复杂的系统ÿ…...
基于物联网的车辆定位和防盗报警系统(论文+源码)
1 系统概述 本文的主要内容是设计一个基于物联网的车辆定位和防盗报警系统,主要是利用STC89C52单片机来作为整体的核心控制元件,主要的核心控制模块主要由GSM通信模块,GPS定位模块,热释电红外检测模块,报警模块以及其他…...
京东零售数据可视化平台产品实践与思考
导读 本次分享题目为京东零售数据可视化平台产品实践与思考。 主要包括以下四个部分: 1. 平台产品能力介绍 2. 业务赋能案例分享 3. 平台建设挑战与展望 作者:梁臣 京东 数据产品架构师 01平台产品能力介绍 1. 产品矩阵 数据可视化产品是一种利用…...
终极命令行工具:如何用BaiduPCS-Go高效管理百度网盘文件
终极命令行工具:如何用BaiduPCS-Go高效管理百度网盘文件 【免费下载链接】BaiduPCS-Go iikira/BaiduPCS-Go原版基础上集成了分享链接/秒传链接转存功能 项目地址: https://gitcode.com/GitHub_Trending/ba/BaiduPCS-Go 在当今数据驱动的时代,高效…...
性能优化实战:Vue3 + Cesium加载天地图时,如何解决图层闪烁、内存暴增问题?
Vue3 Cesium天地图性能优化实战:解决图层闪烁与内存泄漏难题 当Vue3遇上Cesium和天地图,这个技术组合能构建出令人惊艳的三维地理应用。但当你真正投入生产环境时,图层闪烁、内存暴增这些"高级"问题就会找上门来。今天我们就来解剖…...
深入解析rewriteBatchedStatements:如何通过SQL重写提升MySQL批处理性能
1. 揭开rewriteBatchedStatements的神秘面纱 第一次听说rewriteBatchedStatements这个参数时,我正被一个批量导入数据的性能问题折磨得焦头烂额。当时我们的系统需要每小时处理数十万条用户行为数据,但MySQL的插入速度始终上不去。直到某天深夜调试时&am…...
告别复杂配置!ERNIE-4.5-0.3B-PT模型vLLM部署与Chainlit调用详解
告别复杂配置!ERNIE-4.5-0.3B-PT模型vLLM部署与Chainlit调用详解 1. 快速部署ERNIE-4.5-0.3B-PT模型 ERNIE-4.5-0.3B-PT是百度推出的轻量级文本生成模型,基于专家混合(MoE)架构设计,具有300亿参数但仅激活0.3亿参数。使用vLLM部署可以大幅提…...
Deep Sort PyTorch:多目标跟踪的完整实践指南
Deep Sort PyTorch:多目标跟踪的完整实践指南 【免费下载链接】deep_sort_pytorch MOT using deepsort and yolov3 with pytorch 项目地址: https://gitcode.com/gh_mirrors/de/deep_sort_pytorch 想要在视频中实现准确的行人和车辆跟踪吗?Deep …...
深度解析NxNandManager:Nintendo Switch NAND管理工具的技术实现
深度解析NxNandManager:Nintendo Switch NAND管理工具的技术实现 【免费下载链接】NxNandManager Nintendo Switch NAND management tool : explore, backup, restore, mount, resize, create emunand, etc. (Windows) 项目地址: https://gitcode.com/gh_mirrors/…...
FreakStudio瓢
环境安装 pip install keystone-engine capstone unicorn 这3个工具用法极其简单,下面通过示例来演示其用法。 Keystone 示例 from keystone import * CODE b"INC ECX; ADD EDX, ECX" try:ks Ks(KS_ARCH_X86, KS_MODE_64)encoding, count ks.asm(CODE)…...
ESP32+W6100异步以太网配置管理框架
1. 项目概述AsyncESP32_W6100_Manager是一款专为 ESP32 平台设计的、面向以太网连接管理的异步配置框架。它并非一个独立的网络协议栈,而是构建在 ESP-IDF LwIP 协议栈、W6100 以太网 PHY 驱动以及ESPAsyncWebServer异步 Web 服务器之上的高层应用管理库。其核心使命…...
如何快速解决Windows快捷键冲突:完整实用指南
如何快速解决Windows快捷键冲突:完整实用指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否遇到过精心…...
Tusky性能优化技巧:如何打造流畅的Mastodon体验
Tusky性能优化技巧:如何打造流畅的Mastodon体验 【免费下载链接】Tusky An Android client for the microblogging server Mastodon 项目地址: https://gitcode.com/gh_mirrors/tu/Tusky Tusky作为一款优秀的Android版Mastodon客户端,其性能优化设…...
