打印
[技术问答]

IIC通信问题

[复制链接]
963|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
18576478035|  楼主 | 2019-7-8 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问下赛元IIC通信时为什么接受的数据不是本次发送的数据,而是上次发送的数据?我先用主机发送一个数据给赛元IIC,然后读取,发现读取的数据不对,再次发送一个数据给它,再次读取发现读取的数据是上次发送给它的这是怎么回事?

使用特权

评论回复

相关帖子

沙发
18576478035|  楼主 | 2019-7-8 11:26 | 只看该作者
void TWI_Int() interrupt 7     //TWI中断函数
{
    u8 stat_val ;
        u8 temp  ;
        stat_val = SSCON0 &0X07 ;
        if(SSCON0&0x40)
        {
                SSCON0 &= 0xbf;  //中断清零
        }
        if(SSDAT==0x0d)                //(主机读)从机地址是:0x06  //0x0c|0x01=0x0d
        {
//          Read_From_IIC_Flag = 1 ;
          SSDAT = LED_Stat_Val;               
        }
        else if(SSDAT == 0x0c) //(主机写)
        {
            ;
        }
        else
        {
          if(stat_val == 2)
          {
            LED_Stat_Val =  SSDAT ;
          }
         

        }
}

使用特权

评论回复
板凳
18576478035|  楼主 | 2019-7-8 11:26 | 只看该作者
我这样写有问题吗?为甚么总是收到上次发的数据而不是本次的?

使用特权

评论回复
地板
18576478035|  楼主 | 2019-7-8 11:28 | 只看该作者
      while(1)
                        {
                               
                               
                                Send_Data_To_IIC() ;         // 发送LED信息给IIC               
                                Delay_1ms(1000);  //每隔10MS读取下按键值                       
                                IIC_ReadData() ;    //从IIC读取按键值
                                Delay_1ms(1000);  //每隔10MS读取下按键值
                       
                               
                        }

使用特权

评论回复
5
18576478035|  楼主 | 2019-7-8 13:44 | 只看该作者
有人知道吗?

使用特权

评论回复
6
赛元MCU3| | 2019-7-10 10:58 | 只看该作者

加我们技术QQ吧:2131132845

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

187

帖子

2

粉丝