I2C实验中的一个c语言问题

2019-07-20 09:06发布

本帖最后由 学习stm32f4 于 2018-3-19 22:25 编辑

大家好。在I2C实验这一节,main.c中有一个const修饰的数组:
[mw_shl_code=c,true]const u8 TEXT_Buffer[]={"Explorer STM32F4 IIC TEST"};[/mw_shl_code]
那么,在AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite)函数中引用数组名TEXT_Buffer时,必须加上(u8 *):
[mw_shl_code=c,true]AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE);[/mw_shl_code]
否则,编译报错。
我试了一下,若不想加(u8 *),即:
[mw_shl_code=c,true]AT24CXX_Write(0,TEXT_Buffer,SIZE);[/mw_shl_code]
那么,定义u8 TEXT_Buffer[]数组时,不用const修饰,即去掉const后,可以直接在AT24CXX_Write()函数中引用数组名TEXT_Buffer,而不必再加(u8 *),这时编译不再报错,用探索板测试了一下,读写正常。


请问为何这样呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。