求助 IIC总线器件子地址是什么意思啊

2020-01-27 11:40发布

如头文件<IIC.H>中
bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no)
{
   uchar i;

   Start_I2c();                  /*启动总线*/
   SendByte(sla);                /*发送器件地址*/
   if(ack==0)return(0);
   SendByte(suba);               /*发送器件子地址*/
   if(ack==0)return(0);
这个suba是什么啊?发送器件子地址。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
.titrwh
1楼-- · 2020-01-27 14:27
是你要读写数据的地址。                                                                                                                        
dingdan258
2楼-- · 2020-01-27 16:24
 精彩回答 2  元偷偷看……
dingdan258
3楼-- · 2020-01-27 22:13
先定义一个数组:
on_off_cnt[200];

ISendStr(0xa0,0x00,on_off_cnt,8);//把数据on_off_cnt[0]-on_off_cnt[7]-写到0x00-0X07地址中
delayms(10);
ISendStr(0xa0,0x08,&on_off_cnt[8],8);//把数据on_off_cnt[8]-on_off_cnt[15]-写到0x08-0X0f地址中
delayms(10);
ISendStr(0xa0,0x10,&on_off_cnt[16],8);//把数据on_off_cnt[16]-on_off_cnt[23]-写到0x10-0X17地址中
delayms(10);
ISendStr(0xa0,0x18,&on_off_cnt[24],8);//把数据on_off_cnt[24]-on_off_cnt[31]-写到0x18-0X1f地址中
.................................
.................................
delayms(10);
ISendStr(0xa0,0xc0,&on_off_cnt[192],8);//把数据on_off_cnt[192]-on_off_cnt[199]-写到0x08-0X0f地址中

以此类推,写25次就可以把200字节写完。

读取的话就按地址:
IRcvStr(0xa0,0x00,on_off_cnt,1);//从地址0x00-0X07中读出数据到on_off_cnt[0]-on_off_cnt[7]
delayms(10);
IRcvStr(0xa0,0x08,&on_off_cnt[8],1);//从地址0x08-0X0f中读出数据到on_off_cnt[8]-on_off_cnt[16]
................................
...............................
看到一位兄弟这么写的,24C0X这种芯片用起来不能自动分页吗,呵呵,这么麻烦。
mbass51
4楼-- · 2020-01-28 01:32
用過24c02不需分頁
mvpgpz
5楼-- · 2020-01-28 02:53
你要是看到ch452的官方给的I2c的程序,你会彻底崩溃的。
说是兼容I2c,原来只是兼容时序!
ycheng2004
6楼-- · 2020-01-28 05:00
czg1411 发表于 2013-7-17 11:28
32 x 5 . . .


32页的话,每页就是8个字节,8*4
如16页的话,每页就是F个字节,F*4

一周热门 更多>