BearPi Std 板从入门到放弃 - 后天篇(2)(I2C1读写EEPROM)

简介

基于 BearPi Std 板从入门到放弃 - 后天篇(1)(I2C1 读取 光照强度), 使用同一个I2C接口访问EEPROM, 同时读取光照亮度
主芯片: STM32L431RCT6
LED : PC13 \ 推挽输出即可 \ 高电平点亮
串口: Usart1
I2C : I2C1
光照强度传感器:BH1750
EEPROM芯片 : AT24C02

芯片说明

  1. BearPi 自带的扩展版 E53_SC1_智慧路灯的原理图
    在这里插入图片描述

  2. AT2402C 基本描述, 2Kbit, 32Page, 每个Page 1 Byte, 所以地址是0~255

  3. AT2402C 的 设备地址规则
    在这里插入图片描述

  4. 结论
    a. 结合 原理图,
    A0 = 1; A1 = 0; A2 =0;
    写的地址 = 10100010 = 0xA2
    读的地址 = 10100011 = 0xA3

b. 2Kbit, 32Page, 每个Page 1 Byte, 所以地址是0~255

步骤

  1. 基于前面文章, 创建工程
  2. 添加读写代码
#define AT24C02_WRITE_ADDRESS 0xA2
#define AT24C02_READ_ADDRESS 0xA3/* 写单个字节 */
uint8_t AT24C02_Write_Byte(uint16_t addr, uint8_t *dat)
{return HAL_I2C_Mem_Write(&hi2c1, AT24C02_WRITE_ADDRESS, addr, I2C_MEMADD_SIZE_8BIT, dat, 1, 0xffff);
}
/* 读取单个字节 */
uint8_t AT24C02_Read_Byte(uint16_t addr, uint8_t *buf)
{return HAL_I2C_Mem_Read(&hi2c1, AT24C02_READ_ADDRESS, addr, I2C_MEMADD_SIZE_8BIT, buf, 1, 0xffff);
}/* 读多个字节 */
uint8_t AT24C02_Read_Bytes(uint16_t addr, uint8_t *buf, uint16_t bufSize)
{return HAL_I2C_Mem_Read(&hi2c1, AT24C02_READ_ADDRESS, addr, I2C_MEMADD_SIZE_8BIT, buf, bufSize, 0xffff);
}int main()
{...uint8_t res = 0;uint8_t datTemp = 0;/* 写完整个EEPROM */for (int i = 0; i < 256; ++i){datTemp  = i;res = AT24C02_Write_Byte(i, &datTemp);if (res){printf("Faile To Write Address %d!\r\n", i);}HAL_Delay(10); // 写延时, 不然会失败}/* 读完整个EEPROM */for (int i = 0; i < 256; ++i){res = AT24C02_Read_Byte(i, &datTemp);if (res){printf("Faile To ReadAddress %d!\r\n", i);}else{printf("Address: %d, Value: %d\r\n", i, datTemp);}}while(1){...}
}

BearPi I2C1 完整项目工程, 包含两份芯片datasheet

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/210887.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hive的使用技巧

一.Hive常用交互命令 [zhangflinkflinkv1 hive]$ bin/hive -help1.在Hive命令行里创建一个表student&#xff0c;并插入1条数据 2.“-e”不进入hive的交互窗口执行hql语句 3.“-f”执行脚本中的hql语句 二. Hive参数配置方式 1.查看当前所有的配置信息 hive> set;2.参数的…

[跑代码-遇到问题-报错3]BK-SDM. KeyError: ‘up_blocks.0‘

File "src/kd_train_text_to_image.py", line 790, in mainKeyError: up_blocks.0 出问题的原因 dict acts_tea读到dict acts_stu没有读到dict 原因是 unet_teacher的结构后面直接接down_blocks&#xff08;正常&#xff09;unet_teacher.down_blocks 但是unet的结构…

Android实验:广播实验

目录 广播实验目的实验内容实验要求项目结构代码实现结果展示 广播 Android 应用与 Android 系统和其他 Android 应用之间可以相互收发广播消息&#xff0c;这与发布-订阅设计模式相似。这些广播会在所关注的事件发生时发送。举例来说&#xff0c;Android 系统会在发生各种系统…

初级数据结构(一)——顺序表

文中代码源文件已上传&#xff1a;数据结构源码 1、顺序表的特点 1.1、数组 现实中数据记录一般都记录在表格中&#xff0c;如进货单、菜单等&#xff0c;它们的最大特点就是有序。表述中可以用第一项、第二项、第 n 项来描述表格中某个数据或者某串数据。在 C 语言中&#…

uni-app 微信小程序之swiper轮播图

1. 实现效果 2. 完成代码 <template><view class"components-home"><view style"margin-top:-50rpx;height: 486rpx; position: relative;margin-bottom: 80rpx;"><image srchttps://xxx.com/img/wccQQP.png modewidthFix classpng …

基于STM32驱动的压力传感器实时监测系统

本文介绍了如何使用STM32驱动压力传感器进行实时监测。首先&#xff0c;我们会介绍压力传感器的工作原理和常见类型。然后&#xff0c;我们将介绍如何选择合适的STM32单片机和压力传感器组合。接下来&#xff0c;我们会详细讲解如何使用STM32驱动压力传感器进行数据采集和实时监…

【C++】POCO学习总结(九):网络

【C】郭老二博文之&#xff1a;C目录 1、Poco::Net::IPAddress IP地址 Poco::Net::IPAddress类存储IPv4或IPv6主机地址。 Poco::Net::IPAddress可以从字符串解析&#xff0c;也可以格式化为字符串。支持IPv4格式(d.d.d.d)和IPv6格式(x: x: x: x: x: x: x: x)。 常用函数&…

搞笑视频无水印下载,高清无水印视频网站!

搞笑视频无水印下载这件事情一直困扰了广大网友&#xff0c;每当看见好玩好笑的搞笑视频然而下载下来的时候&#xff0c;要么画质模糊就带有水印今天分享大家几个搞笑视频无水印下载方法。 这是一个非常良心的搞笑视频无水印下载小程序水印云&#xff0c;它支持图片去水印、视…

HITOS_LAB5 进程运行轨迹的跟踪与统计

5. 进程运行轨迹的跟踪与统计 5.1. 实验目的 掌握 Linux 下的多进程编程技术&#xff1b;通过对进程运行轨迹的跟踪来形象化进程的概念&#xff1b;在进程运行轨迹跟踪的基础上进行相应的数据统计&#xff0c;从而能对进程调度算法进行实际的量化评价&#xff0c; 更进一步加…

高德地图加载三维模型vue(.obj转.gltf)

官方glTF模型案例 obj2gltf 的开发文档 第一步&#xff1a;这里首先要将我们的.obj文件转换为.gltf文件 全局安装 npm install -g obj2gltf终端打开.obj文件所在的文件夹执行 obj2gltf -i model.obj -o model.gltf -t &#xff08;-i model.obj对应你的obj文件的名字&#x…

Node包管理工具 - nvm、npm、yarn、cnpm、pnpm

转载说明 原文地址 简介 nvm : 可以实现一台电脑&#xff0c;拥有多个版本的Node npm : node package manager 下载Node后自带的一个包管理工具 yarn : npm 的升级版&#xff0c;更优秀 cnpm : 配置下载非官方地址的依赖&#xff08;淘宝、华为、腾讯镜像&#xff09; pnpm :…

前端时间的失败总结复盘

分享失败经验&#xff0c;前段时间的总结复盘&#xff1a; 与伙伴合作面对异常决策要及时提出质疑&#xff0c;怼&#xff0c;别太客气&#xff0c;客气起来&#xff0c;小心翼翼在意他人情绪那么这个项目就会让人难受&#xff0c;不要因为因为伙伴身上有标签/光环/权威就觉得…

java后端自学错误总结

java后端自学错误总结 MessageSource国际化接口总结 MessageSource国际化接口 今天第一次使用MessageSource接口,比较意外遇到了一些坑 messageSource是spring中的转换消息接口&#xff0c;提供了国际化信息的能力。MessageSource用于解析 消息&#xff0c;并支持消息的参数化…

题目:区间更新(蓝桥OJ 3291)

题目描述&#xff1a; 解题思路&#xff1a; 差分模板题。 题解&#xff1a; #include<bits/stdc.h> using namespace std;const int N 1e5 10; int a[N], diff[N] ;//数组的大小不可能开到大于1e9int res(int n, int m) {for(int i 1; i < n; i)cin >&g…

抖音视频如何无水印保存?抖音视频无水印保存教程

抖音视频如何无水印保存&#xff1f;当下短视频盛行时代&#xff0c;抖音作为当下主流短视频平台之一&#xff0c;每天都有数以亿计的用户在抖音上分享自己的创作&#xff0c;然后当我们遇到感兴趣的视频&#xff0c;下载保存后会发现带有水印&#xff0c;那么抖音视频如何无水…

人、机不同在于变与多

人擅长变&#xff0c;如变模态、变尺度&#xff0c;而机器侧重多&#xff0c;如多模态、多尺度。 人类擅长变化的能力是由于我们的大脑和思维能力的灵活性所决定的。我们可以通过学习和适应&#xff0c;改变我们的态度、行为方式和观点&#xff0c;以适应不同的情境和环境。例如…

51 代码审计-PHP框架MVC类上传断点调试挖掘

目录 知识点1:知识点2:知识点3:演示案例:PHPStormxdebu断点调试演示Beescms无框架后台任意文件上传Finecms基于前台MVC任意文件上传CItphp基于前台TP5框架任意文件上传 涉及资源: 知识点1: #关键字搜索: (函数&#xff0c;关键字&#xff0c;全局变量等) 文件上传&#xff0c;…

国标GB28181协议/RTSP视频监控汇聚平台EasyCVR(V.3.4)页面UI大更新

为提高用户体验&#xff0c;增强平台功能&#xff0c;旭帆科技的Easy系列平台也在不断优化更新中。在最新的EasyCVR&#xff08;V.3.4&#xff09;中&#xff0c;其最显著的区别即为首页UI的调整。 其亮点是在【配置中心】-【基础配置】-【展示信息】中&#xff0c;首页UI可分…

短视频账号矩阵系统源码/saas独立源头技术开发

一、批量剪辑&#xff08;采用php语言&#xff0c;数学建模&#xff09; 短视频合成批量剪辑的算法主要有以下几种&#xff1a; 1. 帧间插值算法&#xff1a;通过对多个视频的帧进行插帧处理&#xff0c;从而合成一段平滑的短视频。 2. 特征提取算法&#xff1a;提取多个视频中…

Spring容器启动过程中的自定义操作插口汇总

目录标题 PostConstruct注解EventListener方式InitializingBean的afterPropertiesSet方法实现ApplicationRunner接口重写run方法实现AplicationContextAware接口重写setApplicationContext实现ServletContextListener接口contextInitialized方法实现ServletContextAware接口set…