S32K144:12.LPI2C驱动AT24C16

article/2025/10/9 10:55:19

1.打开官方例程
请添加图片描述

2.修改引脚配置
请添加图片描述

3.时钟可按照实际情况修改,也可不用更改,本例时钟不做更改
请添加图片描述

4.配置LPI2C模块
请添加图片描述

设置从机地址:从机地址如下图所示,低三位表示为AT24C16的块地址,AT24C16将2KB的内存空间分为8个块,每个块256个字节的数据,此处先读写块0的内存,故将地址设置为0x50。
请添加图片描述
I2C频率设置:此处使用标准模式速率为100KHz。按照AT24C16手册,也可配置为快速模式400KHz或1MHz,可按照需求配置。
请添加图片描述

5.按页写入数据到AT24C16
请添加图片描述按照时序,先发送器件地址——发送待写入区域地址——连续写入数据——停止写入。注意:单次最多写入16字节的数据

6.从AT24C16随机读取数据
请添加图片描述
按照时序,先发送器件地址——发送待读区域地址——连续读入数据——停止写入

7.奉上代码:

    uint8_t txbuff[] = {0x00, 0x01, 0x02}; /* 0x00:块1的偏移地址为0 后两个才为写入数据 */uint8_t rx_buff[2] = {0, 0};LPI2C_DRV_MasterInit(INST_LPI2C1, &lpi2c1_MasterConfig0, &lpi2c1MasterState);/* Send a packet of data to the bus slave */LPI2C_DRV_MasterSendDataBlocking(INST_LPI2C1, txbuff, 3, false, OSIF_WAIT_FOREVER); /* 写入数据 */delay_ms(5); /* 等待完全写入数据 */LPI2C_DRV_MasterSendDataBlocking(INST_LPI2C1, txbuff, 1, true, OSIF_WAIT_FOREVER); /* 写入待读取数据地址 */LPI2C_DRV_MasterReceiveDataBlocking(INST_LPI2C1, rx_buff, 2, true, OSIF_WAIT_FOREVER); /* 读取数据 */

经过测试,以上代码能够实现读写功能,各路朋友可放心使用


http://chatgpt.dhexx.cn/article/bTdkpXZr.shtml

相关文章

stm32cubemx I2C读取AT24C16

本文对如何使用stm32cube生成I2C工程不作说明,仅对在对AT24Cxx系列的使用时作出易忽略的说明; 1、at24cxx页面结构: 从该图可以看出16K(bit)共有128个页,每页由16byte构成。16k 128 * 16 * 8; 特别注意&…

STM32之 AT24C16(EEPROM)驱动代码(程序稳定,清晰明了)

AT24C16电路图 第一部分:IIC协议代码头文件(iic.h) #ifndef IIC_H #define IIC_H #include "stm32f10x.h" #include "sys.h" #include "delay.h"#define write 0 #define read 1//IIC总线地址接口定义 #define IIC_SCL PBout(7) #d…

GD32F4xx MCU控制I2C EEPROM(AT24C16)记录

1、AT24C16简介 1.1 主要参数 工作电压:1.8v ~ 5.5v存储空间:2048 Bytes ,分128页,16Bytes/页, 地址范围 0~2047。接口: I2C 总线I2C时钟频率: 1MHz( 5v ) , 400KHz( 1.8v, 2.5v, 2.7v)。1.2 电路连接 1.3 其他说明 AT24C16未使用器件地址引脚,总线上最多只可以连接一…

AT24C04、AT24C08、AT24C16系列EEPROM芯片单片机读写驱动程序

一、概述 在之前的一篇博文中,记录了AT24C01、AT24C02芯片的读写驱动,先将之前的相关文章include一下: 1.IIC驱动:4位数码管显示模块TM1637芯片C语言驱动程序 2.AT24C01/AT24C02读写:AT24C01/AT24C02系列EEPROM芯片单…

IIC方式读驱动AT24C16芯片

闲来无事,找了块msp430的板子编写了个IIC驱动AT24C16的程序。 IIC作是一种简单,双向,同步的二进制总线,由SDA数据线和SCL时钟线组成,所有接到IIC总线上的各设备的SDA数据线都连接到总线的SDA数据线上,用来…

AT24C16页写和多页写

AT24C16 2K字节(存储内存) 128(页面数)* 16 (每页的字节数) 2^11 (寻址地址位数 11位)。 AT24C16有128(2^7128)页只需要7位地址,分为高3位和低4位,高3位在设备地址中,低4位在字地址中。 设备…

EEPROM(AT24C16)页写算法

1. 写在前面 学习单片机或者从事嵌入式开发的,对于EEPROM绝不会陌生,尤其的24系列的EEPROM很是经典,或者与此兼容的FRAM系列,如AT24C02、AT24C16、FM24C16等。 驱动起这个系列的EEPROM,可以说是没有任何难点&#xff0…

AT24C16 读写注意点

开篇一张时序图镇楼: 这篇文章介绍了AT24C16的页写、连续读、写保护功能:AT24C16 读写_D.luffy的博客-CSDN博客_at24c16 页写算法我是参考这篇文章的:https://acuity.blog.csdn.net/article/details/78550427?utm_ char ee_24clxx_writeby…

AT24C16 读写

at24c16 有8块 256字节组成,共2K字节16K bit I2C开始信号后,第一个字节为器件地址,由10103位块地址1位读写标志组成, 3位块地址刚好可以表示 8个块, 所以一次写完256字节,换到下一下块的时候,要…

进程间通信的方式(附代码分析)

进程间通信的方式 1. 进程间通信的几种方式 管道 比如 ls | grep 1;也就是将 进程 ls 拿到的结果作为 grep 1 这个进程的输入。实现了进程间的通信。 消息队列 消息队列就是我们的内核给我们创建的一种消息队列。我们可以往其中发送消息,也可以从其中接收消息。 …

linux进程--进程间通信方式(一)

一、多进程 首先,先来讲一下fork之后,发生了什么事情。 由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程…

进程间通信的方式——信号、管道、消息队列、共享内存

进程间通信的方式——信号、管道、消息队列、共享内存 多进程: 首先,先来讲一下fork之后,发生了什么事情。 由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别…

Android 进程间通信的几种实现方式

一、概述 由于应用程序之间不能共享内存。在不同应用程序之间交互数据(跨进程通讯),在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于android系统中4种应用程序组件:Activity、Content Provider、Broadcast和S…

进程间通信的方式及原理

# 进程间通信的方式 文章目录 # 进程间通信的方式消息队列使用步骤 管道 消息队列 信号 信号量 socket 消息队列 首先消息队列就是内核维护的一块链表区域,只要是有足够权限的进程都可以向队列中添加消息,只要是有读权限的进程都可以在里面拿出消息 克…

C | 进程间通信的方式

C | 进程间通信的方式 1.无名管道 无名管道是实现亲缘间进程通信的一种方式,属于半双工通信。 无名管道的实现是队列,不能使用lseek对读写指针偏移。 无名管道有两个端:数据流入端和数据流出端,也叫写端和读端。它们是两个固定…

面试题:进程间通信的方式

liunx六大进程间通信方式 管道,消息队列,共享内存,信号量,socket,信号,文件锁 1,管道 1,匿名管道: 概念:在内核中申请一块固定大小的缓冲区&…

进程间通信的几种方式浅谈(上)

程序员必须让拥有依赖关系的进程集协调,这样才能达到进程的共同目标。可以使用两种技术来达到协调。第一种技术在具有通信依赖关系的两个进程间传递信息。这种技术称做进程间通信(interprocess communication)。第二种技术是同步,…

进程间通信的几种方式

一、管道 在Linux 中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现如下所述。 • 限制管道的大小。实际上&#x…

【进程间通信】进程间通信方式汇总

个人主页:董哥聊技术 我是董哥,嵌入式领域新星创作者 创作理念:专注分享高质量嵌入式文章,让大家读有所得! 文章目录 1、管道模型1.1 匿名管道1.2 命名管道 2、消息队列2.1 创建消息队列2.2 发送消息2.3 接收消息 3、共…

android中进程间通信的几种方式

进程间通信(IPC)方式 使用Bundle使用文件共享使用Messenger使用AIDL使用COntentProvider使用Socket 一、使用Bundle 我们都知道Android中三大组件Activity,Service,Receiver都支持在Intent中传递Bundle数据,而Bundle…