i2c on MK10DX128VLH7

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

i2c on MK10DX128VLH7

719件の閲覧回数
hipsel
Contributor I

Hey there,

I am struggling with setting up the i2c interface on my MK10DX128VLH7 microprocessor. 

Currently I am using KDS to code, but I'm not using Processor Expert.

Could anybody provide an example on how to setup and send 3 data bytes? The MCU should be the master. I want to send 3 bytes (address+data+data). I thought that shouldn't be that difficult...

I basically did the following:

    SIM_SCGC4 |= SIM_SCGC4_I2C1_MASK; //Turn on clock to I2C1 module

    /* configure GPIO for I2C1 function*/

    SIM_SCGC5 |= SIM_SCGC5_PORTE_MASK;

    PORTE_PCR0 = PORT_PCR_MUX(0x06);

    PORTE_PCR1 = PORT_PCR_MUX(0x06);

    /* set MULT and ICR -> S.1141  */

    I2C1_F = 0x14; 

    //I2C1_C1 = I2C_C1_IICEN_MASK;       /* enable IIC */

    I2C1_C1 = 0x80u;       /* s1142 enable IIC - Feld 7 */

   /* send start signal */

   I2C1_C1 |= 0x10;
   I2C1_C1 |= I2C_C1_MST_MASK;

   /* send ID with W/R bit */

   i2c_write(SlaveID);

  //wait
   while((I2C1_S & I2C_S_IICIF_MASK)==0) {};
      I2C1_S |= I2C_S_IICIF_MASK;

   // send data byte

   I2C1_D = data;

   // send stop

   I2C1_C1 &= ~I2C_C1_MST_MASK;
   I2C1_C1 &= ~I2C_C1_TX_MASK;

With this code, I hoped to transmit one byte, am I missing something?

0 件の賞賛
返信
0 返答(返信)