/*
*@brief 主机向从机写多字节
*
*@param addr - 地址
*@param p_buf - 数据指针
*@param len - 待写入字节长度
*
*@return
*
*@note 每写一页需要延时5ms,保证数据正确写入。AT24C02一次最多写入8字节
*/
void EEP_I2C_Write_Multibytes(uint16_t addr,uint8_t *p_buf,uint16_t len)
{
uint16_t i;
EEP_I2C_Start();
I2C_Write_Byte(DEVICE_ADDRESS|((addr/256)<<1));
EEP_I2C_WaitAck();

I2C_Write_Byte(addr%256);
EEP_I2C_WaitAck();

for(i=0;i<len;i++)
{
I2C_Write_Byte(p_buf[i]);
EEP_I2C_WaitAck();
}
EEP_I2C_Stop();
// Delay_Ms(5);
}
/*
*@brief 读多字节(无法跨页)
*
*@param addr - 地址
*@param p_buf - 数据指针
*@param len - 待读取字节长度
*
*@return /
*
*@note /
*/
void EEP_I2C_Read_Multibytes(uint16_t addr,uint8_t *p_buf,uint16_t len)
{
uint16_t i;

EEP_I2C_Start();
I2C_Write_Byte(DEVICE_ADDRESS|((addr/256)<<1));
EEP_I2C_WaitAck();

I2C_Write_Byte(addr%256);
EEP_I2C_WaitAck();

EEP_I2C_Start();
I2C_Write_Byte(DEVICE_ADDRESS|((addr/256)<<1)|0x01);
EEP_I2C_WaitAck();

for(i=0;i<len;i++)
{
p_buf[i] = I2C_Read_Byte();
if(i==(len-1))
{
EEP_I2C_WriteNoAck();
}
else
{
EEP_I2C_WriteAck();
}
}
EEP_I2C_Stop();
}

stm32模拟IO读写AT24C02的更多相关文章

  1. 模拟IO 读写压力测试

    #### 本实验室通过创建一个测试表myTestTable ,分配在一个足够大小的表空间. ###然后通过 insert select 方式,创建100个后台进程进行读写操作,每个后台进程预计时间20 ...

  2. STM32F10x_模拟I2C读写EEPROM

    Ⅰ.写在前面 说到IIC,大家都应该不会陌生,我们初学单片机的时候或多或少都知道或了解过,甚至使用I2C控制过器件.但是,有多少人真正去深入理解,或者深入研究过I2C通信协议呢? 1.我们有必要学习I ...

  3. STM32F10x_SPI(硬件接口 + 软件模拟)读写Flash(25Q16)

    推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前 ...

  4. 巧用Systemtap注入延迟模拟IO设备抖动

    原创文章,转载请注明: 转载自系统技术非业余研究 本文链接地址: 巧用Systemtap注入延迟模拟IO设备抖动 当我们的IO密集型的应用怀疑设备的IO抖动,比如说一段时间的wait时间过长导致性能或 ...

  5. Arduino101学习笔记(五)—— 模拟IO

    1.配置IO管脚 //***************************************************************************************** ...

  6. 综合经验:IO读写错误必然导致程序崩溃

    仿佛是忽然间产生的问题,每次程序退出时候,必然崩溃,花了整整一天才找到原因,就是对数据库的IO读写错误.主要是因为析构函数调用了Disconnect函数,内容如下: void SFTPTool::Di ...

  7. Java IO读写中文各种乱码问题 【转】

    Java IO读写中文各种乱码问题 转自:http://blog.sina.com.cn/s/blog_484ab56f0101muzh.html java.io.*读写中文各种乱码,很费劲.不完全解 ...

  8. STM32F10x_模拟I2C读写_硬件I2C读写

    STM32F10x_模拟I2C读写EEPROM STM32F10x_硬件I2C读写EEPROM(标准外设库版本) STM32F10x_硬件I2C主从通信(轮询发送,中断接收)

  9. 像51一样操作STM32的IO(转)

    源:像51一样操作STM32的IO //-------------------------------------------------------------------------------- ...

随机推荐

  1. java实现将包含多个<REC>的文件拆成若干只包含一个<REC>的文件

    遍历文件夹里的文件,将包含多个<REC>的文件拆成若干只包含一个<REC>的文件 package com.prepub; import java.io.BufferedRead ...

  2. SQL 数据开发(经典)转贴

    数据开发(经典) 1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Str oke_ci_as ...

  3. jdbc导致的问题

    遇到的问题:利用eclipse编写web project,Tomcat服务器成功开启,也通过build path导入了jdbc的路径,但是还是出现下面问题 连接数据库代码如下: 连接数据库语句没有问题 ...

  4. 微信小程序开发——点击防重的解决方案

    对于一些涉及后端接口请求的单击事件,不论后端是否做了请求限制,前端还是有必要进行点击防重处理的. 这样既能减少对服务器端的压力,也能有效防止因重复请求而造成一些不可预期的异常. 尤其是接口请求结果处理 ...

  5. java8 LocalDateTime转unix时间戳(带毫秒,不带毫秒)

    转载自:LocalDateTime To Timestamp Epoch Seconds And Milliseconds Convert LocalDateTime to seconds since ...

  6. docker 删除所有退出的容器

    方法一: #显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID, sudo docker ps -a|grep Exited|awk '{print $1}' #查询所有的容器,过滤出E ...

  7. windows 上安装冷门python模块

    最近在逼乎看到 笑虎大大 的python 撸代码学知识专栏..就下载他的Pspider 框架 安装了一下,准备耍耍. 由于是在Windows下的pycharm 有个 pybloom_live 模块 老 ...

  8. Numpy用户指南

    Numpy是Python语言的一个扩展库,支持大量的维度数组和矩阵运算,此外也针对数组运算提供大量的数学函数库. Mumpy是一个运行速度非常快的数学库,主要用于数组计算,包涵: 1.一个强大的N维数 ...

  9. SOP - Validation

    Table of Contents目录表1 Roles and Responsibilities related to validation与验证相关的1个角色和职责2 Introduction2引言 ...

  10. excel支持正则表达式提取字符函数(支持RegExp捕获分组)

    一.要让excel脚本支持Microsoft VBScript Regular Expressions 5.5 ,按快捷键alt+F11,出现下图界面,操作如图示: 二.添加VBA代码: 代码添加完毕 ...