金牌会员
 
- 积分
- 1067
- 金钱
- 1067
- 注册时间
- 2012-1-7
- 在线时间
- 157 小时
|
原子的IIC实验里面,对于AT24C02的写操作函数如下:
//WriteAddr :开始写入的地址 对24c02为0~255
//pBuffer :数据数组收地址
//NumToWrite:要写入的数据个数
void AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite)
{
while(NumToWrite--)
{
AT24CXX_WriteOneByte(WriteAddr,*pBuffer);
WriteAddr++;
pBuffer++;
}
}
void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite);
上面是u8类型的数组。对于u16和u32类型的数组:
void AT24CXX_WriteLenByte(u16 WriteAddr,u32 DataToWrite,u8 Len)
{
u8 t;
for(t=0;t<Len;t++)
{
AT24CXX_WriteOneByte(WriteAddr+t,(DataToWrite>>(8*t))&0xff);
}
}
1.对于u8,u16,u32不同类型的数据操作,可以使用同一个函数操作吗?比如都使用第二个函数,也就是数据形参为u32的?
2.如果可以使用的画,实参在带入的时候是不是都要强转成u32类型,否则编译器报错?
|
|