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 //-------------------------------------------------------------------------------- ...
随机推荐
- css文本垂直居中的实现
本案例已经有新的比较简便的解决方案,可以直接采用 vertical-align:middle 样式对行内元素进行垂直居中布局,详见: 微信小程序开发——如何让商品标题类文本根据内容长度垂直居中. 以下 ...
- php 通过扫描二维码关注公众号
class Wxfollow { protected $appid = 'wxf1d959b99f33b156'; protected $secret = '248f3a5606045 ...
- RabbitMQ的学习
生成者就是发送信息,消费者就是接收信息,队列就是存储数据的排队.消息通过你的应用程序和RabbitMQ进行传输,它们只能存储在队列中,队列容量没有限制,你要存储多少消息都可以——基本上是一个无限的缓冲 ...
- unity接入谷歌ADMob注意事项
应用不显示广告,可能是广告sdk 依赖项没有注册 dependencies { implementation fileTree(dir: 'bin', include: ['*.jar']) impl ...
- selenium启动谷歌浏览器
谷歌浏览器可以是任意版本. 根据谷歌浏览器的版本,下载响应的浏览器驱动(百度:谷歌驱动与谷歌浏览器版本映射表). 我用的是win7 ,下载win32就行了.下载解压之后可以放在python的安装目录下 ...
- 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 ...
- 除非你是BAT,前端开发中最好少造轮子
站在前人的肩膀上 HTML.CSS.JavaScript是前端的根基,这是无可否认的事实.正如一辆车当然都是由一堆钢板和螺钉组成的,但是现在还有人拎着个锤子敲敲打打的造车吗?李书福说过,“汽车不过是四 ...
- window下mongodb的安装和环境搭建
一.下载安装包或者压缩包 1.下载 mongodb官网社区版下载页面 开发者一般使用社区版即可 3.6.3版本仅支持64位版本 2.安装 mongo compass是一个图形界面管理工具,安装过程非常 ...
- after及before伪元素及解决父元素塌陷的几种方法
一.伪类和伪元素 CSS中伪类和伪元素有很多,也很好用!如果熟练使用的话可以解决很多问题 首先明白什么是伪类:伪类是基于当前元素的状态,而不是元素的id class等静态标志,它是动态变化的,它会在一 ...
- FTP做作业用到的知识点:
FTP做作业用到的知识点: 一: os.path 模块下常用的用法 os.path.abspath(file) #返回的是.py文件的绝对路径(完整路径) os.path.dirname(file) ...