完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
u8 AT24CXX_ReadOneByte(u16 ReadAddr){ u8 temp=0; IIC_Start(); if(EE_TYPE>AT24C16){IIC_Send_Byte(0XA0); //发送写命令IIC_Wait_Ack();IIC_Send_Byte(ReadAddr>>8);//发送高地址 }else IIC_Send_Byte(0XA0+((ReadAddr/256)<<1)); //发送器件地址0XA0,写数据 IIC_Wait_Ack(); IIC_Send_Byte(ReadAddr%256); //发送低地址IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte(0XA1); //进入接收模式 IIC_Wait_Ack(); temp=IIC_Read_Byte(0); IIC_Stop();//产生一个停止条件 return temp;}//在AT24CXX指定地址写入一个数据//WriteAddr :写入数据的目的地址 //DataToWrite:要写入的数据void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite){ IIC_Start(); if(EE_TYPE>AT24C16){IIC_Send_Byte(0XA0); //发送写命令IIC_Wait_Ack();IIC_Send_Byte(WriteAddr>>8);//发送高地址 }else IIC_Send_Byte(0XA0+((WriteAddr/256)<<1)); //发送器件地址0XA0,写数据 IIC_Wait_Ack(); IIC_Send_Byte(WriteAddr%256); //发送低地址IIC_Wait_Ack(); IIC_Send_Byte(DataToWrite); //发送字节 IIC_Wait_Ack(); IIC_Stop();//产生一个停止条件 delay_ms(10); }
小菜鸟以前没有单片机 所以很多弱智问题请原子哥和各位好心人帮帮忙。。 问题1else IIC_Send_Byte(0XA0+((WriteAddr/256)<<1)); //发送器件地址0XA0,写数据 这个0XA0+((WriteAddr/256)<<1) 怎么理解。。。 问题2 IIC_Send_Byte(WriteAddr%256); //发送低地址 这句话什么意思。。。。为什么%256 问题3 IIC_Wait_Ack(); IIC_Send_Byte(ReadAddr%256); //发送低地址IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte(0XA1); //进入接收模式 IIC_Wait_Ack(); 我知道 IIC_Start(); 是开始传输的意思 这里多次使用等待应答函数IIC_Wait_Ack(); 可是应答函数不是返回值确定应答是否成功吗(返回0和1)? 只是调用这个函数有什么意义呢?为什么 IIC_Wait_Ack(); 后面又来了一次IIC_Start(); 既然没结束不是一直在传输么 为什么又来启动。。 我对照IIC传输时序图 无法理解这段程序。。。 之前有C语言的基础 大部分程序都能看懂 这边就完全不能理解了。。。。 |
|
相关推荐
3个回答
|
|
看看STM32参考手册的I2C主发送 主接收部分,中文版的话大概在499页左右
|
|
|
|
0XA0+((WriteAddr/256)<<1) 地址右移8位(得到高地址)再左移一位再+0XA0
%256就得到低8位,取余嘛··· 还可以结合这个EEPROM的手册看看他要怎么读写寄存器的 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1591 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1530 浏览 1 评论
964 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
679 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1574 浏览 2 评论
1856浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
630浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
512浏览 3评论
522浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
495浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-17 17:21 , Processed in 0.814237 second(s), Total 85, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号