普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 4179|回复: 1

I2c读数据问题求教!

 关闭 [复制链接]

5

主题

14

帖子

64

积分

注册会员

Rank: 2

积分
64
发表于 2018-2-15 10:38:18 | 显示全部楼层 |阅读模式
unsigned char I2cReadByte()
{
        unsigned char a=0,dat=0;
        SDA=1;                        //起始和发送一个字节之后SCL都是0
        Delay10us();
        for(a=0;a<8;a++)//接收8个字节
        {
                SCL=1;
                Delay10us();
                dat<<=1;
                dat|=SDA;
                Delay10us();
                SCL=0;
                Delay10us();
        }
        return dat;               
}
这块读出数据,返回的数据不应该是二进制的数吗,

unsigned char At24c02Read(unsigned char addr)
{
        unsigned char num;
        I2cStart();
        I2cSendByte(0xa0);
        I2cSendByte(addr);
        num=I2cReadByte(); //读取数据 ,在这里num的数就应该是二进制数的啊     
        I2cStop();
        return num;       
}


void datapros()
{
        disp[0]=smgduan[num/1000];//千位
        disp[1]=smgduan[num%1000/100];//百位
        disp[2]=smgduan[num%1000%100/10];//个位
        disp[3]=smgduan[num%1000%100%10];               
}

为什么到最后在直接调用num是用作十进制的??
回复

使用道具 举报

13

主题

152

帖子

669

积分

高级会员

Rank: 4

积分
669
发表于 2018-2-15 11:07:21 | 显示全部楼层
本帖最后由 NH6496 于 2018-2-15 11:10 编辑

为什么到最后在直接调用num是用作十进制的?
KEIL帮你搞好了,不然0101010101,别想看到字母。
1056128144@QQ.COM
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-27 08:48 , Processed in 0.102123 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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