打印
[STM8]

STM8 I2C从模式的问题

[复制链接]
2195|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
doudoumaomao|  楼主 | 2014-7-19 18:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
I2c, STM8, TI, TE, AC
请大家帮忙
主机是dsPIC33FJ64GP206   现在想STM8当从机,程序一直调不通

我的中断部分
static u8 sr1;                                       
        static u8 sr2;
        static u8 sr3;
        
sr1 = I2C->SR1;
sr2 = I2C->SR2;
sr3 = I2C->SR3;

  if (sr2 & (I2C_SR2_WUFH | I2C_SR2_OVR |I2C_SR2_ARLO |I2C_SR2_BERR))
  {               
    I2C->CR2|= I2C_CR2_STOP;                                
    I2C->SR2= 0;                                       
  }

  if ((sr1 & (I2C_SR1_RXNE | I2C_SR1_BTF)) == (I2C_SR1_RXNE | I2C_SR1_BTF))
  {
    I2C_byte_received(I2C->DR);
  }

  if (sr1 & I2C_SR1_RXNE)
  {
    I2C_byte_received(I2C->DR);
  }
                  
  if (sr2 & I2C_SR2_AF)
  {       
    I2C->SR2 &= ~I2C_SR2_AF;             
    I2C_transaction_end();
   }
  if (sr1 & I2C_SR1_STOPF)                                      
  {
    I2C->CR2 |= I2C_CR2_ACK;               
    I2C_transaction_end();
   
  }
/* Slave address matched (= Start Comm) */
  if (sr1 & I2C_SR1_ADDR)
  {         
    I2C_transaction_begin();                                      
  }
  if ((sr1 & (I2C_SR1_TXE | I2C_SR1_BTF)) == (I2C_SR1_TXE | I2C_SR1_BTF))
  {
                I2C->DR = I2C_byte_write();
  }
  if (sr1 & I2C_SR1_TXE)
  {
                I2C->DR = I2C_byte_write();
  }       
}
有哪里不对的吗?大家帮忙看看
沙发
doudoumaomao|  楼主 | 2014-7-21 14:00 | 只看该作者
大家帮帮忙啊!
为什么都没人呢

使用特权

评论回复
板凳
doudoumaomao|  楼主 | 2014-7-21 17:12 | 只看该作者
两个芯片之间的I2C通讯,大家谁做过,帮帮忙吧!感谢感谢

使用特权

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

本版积分规则

2

主题

6

帖子

0

粉丝