OpenEdv-开源电子网

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

IIC读取一个字节函数

[复制链接]

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-1-15
在线时间
20 小时
发表于 2016-4-14 08:44:26 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 XHZSCONGE817 于 2016-4-14 08:56 编辑

#define CT_READ_SDA PFin(11)
u8 CT_IIC_Read_Byte(unsigned char ack)
{
        u8 i,receive=0;
         CT_SDA_IN();
        delay_us(30);
        for(i=0;i<8;i++ )
        {
                CT_IIC_SCL=0;                        
                CT_Delay();
                CT_IIC_SCL=1;         
                receive<<=1;
                if(CT_READ_SDA)receive++;   //这句是否可以改为 receive=GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_11);
        }                                          
        if (!ack)CT_IIC_NAck();
        else CT_IIC_Ack();   
         return receive;
}
求问,接收到的数据是从GPIO输入的值,IIC读取一个字节这个函数,接受的数据为何是receive++;初入嵌入式不懂?求解,是不是可以这样写

最佳答案

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

感觉就是有点怪,这种写法
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-1-15
在线时间
20 小时
 楼主| 发表于 2016-4-14 08:44:27 | 显示全部楼层
gf602 发表于 2016-4-14 08:56
if(CT_READ_SDA)receive++意思应该是:读到了0,receive就是零,如果读到了1,receive就将相应位置1.然后循 ...

感觉就是有点怪,这种写法
回复

使用道具 举报

70

主题

6758

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12991
金钱
12991
注册时间
2012-11-26
在线时间
3789 小时
发表于 2016-4-14 08:55:40 | 显示全部楼层
receive<<=1;    if(CT_READ_SDA)receive++;     这两句结合起来看
回复

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2016-3-25
在线时间
18 小时
发表于 2016-4-14 08:56:39 | 显示全部楼层
if(CT_READ_SDA)receive++意思应该是:读到了0,receive就是零,如果读到了1,receive就将相应位置1.然后循环读下一位。
回复

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2016-3-25
在线时间
18 小时
发表于 2016-4-14 09:04:12 | 显示全部楼层
XHZSCONGE817 发表于 2016-4-14 08:44
感觉就是有点怪,这种写法

虚心学习吧,编程高手的作品应该是效率高吧
回复

使用道具 举报

4

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2016-1-15
在线时间
20 小时
 楼主| 发表于 2016-4-14 09:16:10 | 显示全部楼层
gf602 发表于 2016-4-14 09:04
虚心学习吧,编程高手的作品应该是效率高吧

噢,原来是提高编译效率,谢谢解答
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 22:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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