uchar read()
{
uchar i,j,k
scl=0
delay5ms()
sda=1
delay5ms()
for(i=0i<8i++)
{
scl=1
delay5ms()
if(sda)
k=(k<<1)|0x01
else
k=(k<<1)&0xfe
scl=0
delay5ms()
}
sda = 1//释放数据线
return k
}
现在你试试
是读eeprom里面的数据,0到5是索引,类似数组的下标,至于读出来是什么值还要看放进去的是什么值,不过这个是16位的,数字信号肯定是0或1的,不过这个既然用了左移8位,应该不是用来当开关用的,不然都没必要这么高低位组合,直接读位就好了。航模遥控用的,有可能用来匹配地址码,还有一些遥控设置用的数据,如陀螺什么的。BYTE IapReadByte(WORD addr) 读一字节调用:void main()
{
A=BYTE IapReadByte()//括号里输入你需要读取的数据所在的地址
//比如BYTE IapReadByte(0x33)表示读取存储在E2PROM0x33地址处 的数据给前面的变量A。
IapProgramByte() //括号内先输入你需要写入E2PROM的地址,然后输入写给这个地址的数据。 //比如IapProgramByte(0x33,0x45)表示你希望在E2PROM的0x33这个位置写入0x45这个数据。
IapEraseSector() //括号内写入你想擦除的地址。IapEraseSector(0x66)表示你想把E2PROM的0x66这个位置写成0x00或者0xff
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)