求救,IIC实验中问题(已解决)

2019-07-21 04:48发布

用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位吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
八度空间
1楼-- · 2019-07-21 05:12
回复【3楼】jiaozhu:
---------------------------------
你试着将AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite); 改为这样 AT24CXX_Write(u16 WriteAddr,u8* pBuffer,u16 NumToWrite);   然后在你的main里面操作的时候将(u8*)去掉再编译看下什么效果,这时估计你自己就会明白了
八度空间
2楼-- · 2019-07-21 05:58
联系前后代码看下,对比一下
jiaozhu
3楼-- · 2019-07-21 07:33
 精彩回答 2  元偷偷看……
jiaozhu
4楼-- · 2019-07-21 08:58
回复【4楼】Badu_Space:

回复【3楼】jiaozhu:
---------------------------------
你试着将AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite); 改为这样 AT24CXX_Write(u16 WriteAddr,u8* pBuffer,u16 NumToWrite);   然后在你的main里面操作的时候将(u8*)去掉再编译看下什么效果,这时估计你自己就会明白了

---------------------------------
根据你的提示,我明白了,谢谢,就是地址位数不同而做的一个转化。
北方的马克思
5楼-- · 2019-07-21 12:58
回复【5楼】jiaozhu:
---------------------------------
我仍然不清楚,能否详细说明哈
jiaozhu
6楼-- · 2019-07-21 15:48
回复【6楼】北方的马克思:
---------------------------------
STM32是32位存储,51是8位,这样你就懂了

一周热门 更多>