用IIC去读写EEPROM时遇到个问题:
代码来自于原子哥写的例程:
//要写入到24c02的字符串数组
const u8 TEXT_Buffer[]={"WarShipSTM32 IIC TEST"};
#define SIZE sizeof(TEXT_Buffer)
.......
AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE);
此句中为什么要加(u8*)呢?不加就编译不成功。
在用51芯片时就不需要加这个也能编译成功。这是为啥?
加这个是代表指针中的数据强制转化成8位吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
回复【3楼】jiaozhu:
---------------------------------
你试着将AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite); 改为这样 AT24CXX_Write(u16 WriteAddr,u8* pBuffer,u16 NumToWrite); 然后在你的main里面操作的时候将(u8*)去掉再编译看下什么效果,这时估计你自己就会明白了
---------------------------------
根据你的提示,我明白了,谢谢,就是地址位数不同而做的一个转化。
一周热门 更多>