OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3069|回复: 3

AT24C02读写问题

[复制链接]

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1067
金钱
1067
注册时间
2012-1-7
在线时间
157 小时
发表于 2016-6-23 15:21:50 | 显示全部楼层 |阅读模式
原子的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类型,否则编译器报错?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2013-7-16
在线时间
80 小时
发表于 2016-6-23 16:11:51 | 显示全部楼层
1. 对于u8,u16,u32不同类型的数据操作,可以使用同一个函数操作
回复 支持 反对

使用道具 举报

9

主题

108

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2013-7-16
在线时间
80 小时
发表于 2016-6-23 16:13:48 | 显示全部楼层
2,实参在带入的时候都要强转成u32类型,  由于AT24CXX_WriteOneByte();  函数是单次写一个字节的函数,说以一个32 位的数据要拆分来写
回复 支持 1 反对 0

使用道具 举报

34

主题

127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1067
金钱
1067
注册时间
2012-1-7
在线时间
157 小时
 楼主| 发表于 2016-6-23 17:11:11 | 显示全部楼层
cookles 发表于 2016-6-23 16:13
2,实参在带入的时候都要强转成u32类型,  由于AT24CXX_WriteOneByte();  函数是单次写一个字节的函数,说 ...

谢谢解惑
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 13:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表