OpenEdv-开源电子网

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

关于IIC实验中的一句代码,求教大伙

[复制链接]

20

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2016-9-26
在线时间
59 小时
发表于 2016-10-5 09:05:58 | 显示全部楼层 |阅读模式
5金钱
//Len        :要写入数据的长度2,4
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);
        }                                                                                                    
}
这个函数向芯片里面写入数据,其中AT24CXX_WriteOneByte(WriteAddr+t,(DataToWrite>>(8*t))&0xff);的第二个入口参数怎么理解啊?

最佳答案

查看完整内容[请看2#楼]

是将32位的数据(4字节)拆分成4个字节一个一个写入。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2016-10-5 09:05:59 | 显示全部楼层
是将32位的数据(4字节)拆分成4个字节一个一个写入。
回复

使用道具 举报

20

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2016-9-26
在线时间
59 小时
 楼主| 发表于 2016-10-5 10:29:02 | 显示全部楼层
电子之旅 发表于 2016-10-5 10:01
是将32位的数据(4字节)拆分成4个字节一个一个写入。

我这样理解对不对,(DataToWrite>>(8*t))&0xff)运算表达式是先左移后取8位数据?C语言不过关,原先一直误认为先与运算后左移。十分感谢。
回复

使用道具 举报

13

主题

448

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1755
金钱
1755
注册时间
2015-2-7
在线时间
369 小时
发表于 2016-10-5 17:54:39 | 显示全部楼层
单井老头 发表于 2016-10-5 10:29
我这样理解对不对,(DataToWrite>>(8*t))&0xff)运算表达式是先左移后取8位数据?C语言不过关,原先一直误 ...

是的
回复

使用道具 举报

20

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2016-9-26
在线时间
59 小时
 楼主| 发表于 2016-10-7 19:30:06 | 显示全部楼层

再次表示感谢!
回复

使用道具 举报

3

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2016-6-22
在线时间
56 小时
发表于 2016-10-8 15:13:32 | 显示全部楼层
单井老头 发表于 2016-10-5 10:29
我这样理解对不对,(DataToWrite>>(8*t))&0xff)运算表达式是先左移后取8位数据?C语言不过关,原先一直误 ...

不是向右移?
回复

使用道具 举报

20

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
375
金钱
375
注册时间
2016-9-26
在线时间
59 小时
 楼主| 发表于 2016-10-9 20:58:06 | 显示全部楼层

说错了,的确是右移。
回复

使用道具 举报

5

主题

90

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
282
金钱
282
注册时间
2016-8-5
在线时间
158 小时
发表于 2016-10-10 20:34:37 | 显示全部楼层
我经常这样用、、
s32 temp;
AT24C02_ReadData((u8*)(&temp),Save_Addr,4);
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-24 04:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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