STM8S105K6T6单片机的IIC配置问题

最近在用MCP3421,需要用到IIC接口。MCU用的是STM8S105K6T6。使用MCU内部的IIC外设,这个接口配置折腾一下午,遇到了很坑爹的事情。我使用的是寄存器开发的,该设置了感觉都设置好了,就是不能工作。后来以为没配置好,又用库函数来开发,妈的 ,还是不能工作。后来在群里的一位大神的指导下成功的调通了IIC。

闲话有点多,毕竟是我第一次开通博客来写博客的,心情不免有些激动。现在把经验分享给不知道的小伙伴们,少走些弯路。

在使用STM8S105K6T6的IIC前,必须先通过STVP这个软件来进行配置。

STM8S105K6T6单片机的IIC配置问题_第1张图片

这三个步骤是最重要的,当然还需要选择单片机的下载模式,型号什么的,这个不是本文的重点。特别要强调一点,步骤二中

一定要选择第二功能,SCL,SDA。 这个配置好了,然后点击下载就OK了,

现给出寄存器版的IIC初始化代码:

void IIC_Init(void)

  I2C_CR1 =0x00;       //禁止iic  
  I2C_FREQR = 0x10;    //输入时钟频率16MHz  
  I2C_TRISER= 0x11;    //0x10 + 1        
  I2C_CCRL  = 0x50;     //16M / 100K / 2                        
  I2C_CCRH  = 0x00;                      //标准模式 
  I2C_CR1 |= 0x01;                      //使能iic外设    
  I2C_OARH = 0x40;                      //七位地址模式  
  I2C_OARL = 0xa0;                      //自身地址0xa0   
}

读写代码就简单了,针对不同的器件有略微的变化,但通信协议还是标准的IIC。这里就不贴了。因为我觉得最重要的就是初始化的配置。这个没搞好,后面的都是白搞的。

你可能感兴趣的:(STM8S105K6T6单片机的IIC配置问题)