stm32模拟IO读写AT24C02


/*
*@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的更多相关文章
- 模拟IO 读写压力测试
#### 本实验室通过创建一个测试表myTestTable ,分配在一个足够大小的表空间. ###然后通过 insert select 方式,创建100个后台进程进行读写操作,每个后台进程预计时间20 ...
- STM32F10x_模拟I2C读写EEPROM
Ⅰ.写在前面 说到IIC,大家都应该不会陌生,我们初学单片机的时候或多或少都知道或了解过,甚至使用I2C控制过器件.但是,有多少人真正去深入理解,或者深入研究过I2C通信协议呢? 1.我们有必要学习I ...
- STM32F10x_SPI(硬件接口 + 软件模拟)读写Flash(25Q16)
推荐 分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来! http://www.captainbed.net/strongerhuang Ⅰ.写在前 ...
- 巧用Systemtap注入延迟模拟IO设备抖动
原创文章,转载请注明: 转载自系统技术非业余研究 本文链接地址: 巧用Systemtap注入延迟模拟IO设备抖动 当我们的IO密集型的应用怀疑设备的IO抖动,比如说一段时间的wait时间过长导致性能或 ...
- Arduino101学习笔记(五)—— 模拟IO
1.配置IO管脚 //***************************************************************************************** ...
- 综合经验:IO读写错误必然导致程序崩溃
仿佛是忽然间产生的问题,每次程序退出时候,必然崩溃,花了整整一天才找到原因,就是对数据库的IO读写错误.主要是因为析构函数调用了Disconnect函数,内容如下: void SFTPTool::Di ...
- Java IO读写中文各种乱码问题 【转】
Java IO读写中文各种乱码问题 转自:http://blog.sina.com.cn/s/blog_484ab56f0101muzh.html java.io.*读写中文各种乱码,很费劲.不完全解 ...
- STM32F10x_模拟I2C读写_硬件I2C读写
STM32F10x_模拟I2C读写EEPROM STM32F10x_硬件I2C读写EEPROM(标准外设库版本) STM32F10x_硬件I2C主从通信(轮询发送,中断接收)
- 像51一样操作STM32的IO(转)
源:像51一样操作STM32的IO //-------------------------------------------------------------------------------- ...
随机推荐
- 报错:APP has stopped
由于在 /MyActivity/AndroidManifest.xml 中把activity的类名打错,而导致程序加载后即出错. 而输错启动程序的类名并不会引起报错,因此这个应该引起注意.
- Codeforces Round #553 (Div. 2) D题
题目网址:http://codeforces.com/contest/1151/problem/D 题目大意:给出n组数对,(ai , bi),调整这n组数对的位置,最小化 ∑(ai*( i -1)+ ...
- CentOS7 下安装GUI图形界面GNOME
在安装Gnome包之前,需要检查一下网络是否有网络(使用ping www.baidu.com) 一.先装X windows,-y表示参数同意所有软件安装操,当出现 Complete!说明这里安装成功了 ...
- 解决Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
1.在eclipse的workspace里面找到该项目.settings文件夹 2.编辑org.eclipse.wst.common.project.facet.core.xml文件 <?xml ...
- 2,fiddler的基本设置
1,首次打开的基本设置 2,过滤抓包的内容 1)较为常用的是: URL包含和hosts的设置 2)不常用的是 3,设置https 这是实在安装证书,当还是不能抓到https的包的时候,可以区安装彼得证 ...
- 设计模式学习心得<桥接模式 Bridge>
说真的在此之前,几乎没有对于桥接模式的应用场景概念. 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来 ...
- si_da
1. apt-get 从互联网的软件仓库中搜索.安装.升级.卸载软件或操作系统 一般需要root权限执行,所以一般跟着sudo命令 sudo ifstat apt-get install -y ifs ...
- p2p技术之n2n源码核心简单分析一
首先在开篇之前介绍下内网打洞原理 场景:一个服务器S1在公网上有一个IP,两个私网机器C1,C2 C1,C2分别由NAT1和NAT2连接到公网,我们需要借助S1将C1,C2建立直接的TCP连接,即由C ...
- AX_DataSource
for (custInvoiceJourLocal = custInvoiceJour_ds.getFirst(true) ? custInvoiceJour_ds.getFirst(true) : ...
- Java实现多线程生产者消费者模型及优化方案
生产者-消费者模型是进程间通信的重要内容之一.其原理十分简单,但自己用语言实现往往会出现很多的问题,下面我们用一系列代码来展现在编码中容易出现的问题以及最优解决方案. /* 单生产者.单消费者生产烤鸭 ...