/*
*@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. css文本垂直居中的实现

    本案例已经有新的比较简便的解决方案,可以直接采用 vertical-align:middle 样式对行内元素进行垂直居中布局,详见: 微信小程序开发——如何让商品标题类文本根据内容长度垂直居中. 以下 ...

  2. php 通过扫描二维码关注公众号

    class Wxfollow {     protected $appid = 'wxf1d959b99f33b156';     protected $secret = '248f3a5606045 ...

  3. RabbitMQ的学习

    生成者就是发送信息,消费者就是接收信息,队列就是存储数据的排队.消息通过你的应用程序和RabbitMQ进行传输,它们只能存储在队列中,队列容量没有限制,你要存储多少消息都可以——基本上是一个无限的缓冲 ...

  4. unity接入谷歌ADMob注意事项

    应用不显示广告,可能是广告sdk 依赖项没有注册 dependencies { implementation fileTree(dir: 'bin', include: ['*.jar']) impl ...

  5. selenium启动谷歌浏览器

    谷歌浏览器可以是任意版本. 根据谷歌浏览器的版本,下载响应的浏览器驱动(百度:谷歌驱动与谷歌浏览器版本映射表). 我用的是win7 ,下载win32就行了.下载解压之后可以放在python的安装目录下 ...

  6. spark 线性回归算法(scala)

    构建Maven项目,托管jar包 数据格式 //0.fp_nid,1.nsr_id,2.gf_id,2.hydm,3.djzclx_dm,4.kydjrq,5.xgrq,6.je,7.se,8.jsh ...

  7. 除非你是BAT,前端开发中最好少造轮子

    站在前人的肩膀上 HTML.CSS.JavaScript是前端的根基,这是无可否认的事实.正如一辆车当然都是由一堆钢板和螺钉组成的,但是现在还有人拎着个锤子敲敲打打的造车吗?李书福说过,“汽车不过是四 ...

  8. window下mongodb的安装和环境搭建

    一.下载安装包或者压缩包 1.下载 mongodb官网社区版下载页面 开发者一般使用社区版即可 3.6.3版本仅支持64位版本 2.安装 mongo compass是一个图形界面管理工具,安装过程非常 ...

  9. after及before伪元素及解决父元素塌陷的几种方法

    一.伪类和伪元素 CSS中伪类和伪元素有很多,也很好用!如果熟练使用的话可以解决很多问题 首先明白什么是伪类:伪类是基于当前元素的状态,而不是元素的id class等静态标志,它是动态变化的,它会在一 ...

  10. FTP做作业用到的知识点:

    FTP做作业用到的知识点: 一: os.path 模块下常用的用法 os.path.abspath(file) #返回的是.py文件的绝对路径(完整路径) os.path.dirname(file) ...