[技术问答] IIC通信问题

[复制链接]
311|5
 楼主 | 2019-7-8 11:02 | 显示全部楼层 |阅读模式
问下赛元IIC通信时为什么接受的数据不是本次发送的数据,而是上次发送的数据?我先用主机发送一个数据给赛元IIC,然后读取,发现读取的数据不对,再次发送一个数据给它,再次读取发现读取的数据是上次发送给它的这是怎么回事?

使用特权

评论回复
 楼主 | 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 ;
          }
         

        }
}

使用特权

评论回复
 楼主 | 2019-7-8 11:26 | 显示全部楼层
我这样写有问题吗?为甚么总是收到上次发的数据而不是本次的?

使用特权

评论回复
 楼主 | 2019-7-8 11:28 | 显示全部楼层
      while(1)
                        {
                               
                               
                                Send_Data_To_IIC() ;         // 发送LED信息给IIC               
                                Delay_1ms(1000);  //每隔10MS读取下按键值                       
                                IIC_ReadData() ;    //从IIC读取按键值
                                Delay_1ms(1000);  //每隔10MS读取下按键值
                       
                               
                        }

使用特权

评论回复
 楼主 | 2019-7-8 13:44 | 显示全部楼层
有人知道吗?

使用特权

评论回复
| 2019-7-10 10:58 | 显示全部楼层

加我们技术QQ吧:2131132845

使用特权

评论回复
扫描二维码,随时随地手机跟帖
*滑动验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表