wuyage

KSDK1.3 之简单IIC Demo

0
阅读(2290)

IIC 是一个常用的外设,最基本的功能就是读写数据。KSDK1.3里的IIC 例程如下,

IIC1.jpg

打开工程后一看一大堆代码,而且还得用两个开发板飞线后才能把例程跑起来,这叫一个麻烦啊。

站在用户的角度,其实就需要一个简单的能够读写操作的例子就可以。

以FRDM_KL43Z为例,板子上有现成的IIC接口的传感器MAG3110 和MMA8451。

我这里做了一个简单的demo,供大家参考。

代码里只调用了HAL层的函数,下面的这两个函数用来实现接收和发送数据

IIC1.jpg


main函数很简单:

int main(void)
{
    uint8_t txBuff[2] = {0x03,0x04}; // Buffer store data to send to slave
    uint8_t rxBuff[2] = {0x00,0x00}; // Buffer store data to receive from slave

    PRINTF("\r\n====================IIC Test ===================\r\n");

  // Init hardware
  hardware_init();
	
   I2C_Init();
	
  MAG3110_Init();
			
    Hal_Dev_MAG3110_Write_Reg(MAG3110_OFF_X_MSB,txBuff, 2);
		
    Hal_Dev_MAG3110_Read_Reg(MAG3110_OFF_X_MSB,rxBuff, 2);
		
    printf("rxBuff[0]=0x%02x\r\n",rxBuff[0]);
    printf("rxBuff[1]=0x%02x\r\n",rxBuff[1]);
		
}

结果如下:

33.jpg


整个工程见附件:

i2c_SimpleExample.rar