cancel
Showing results for 
Search instead for 
Did you mean: 

the code from st example

David.Cheng
Associate II
I2C_Cmd(sEE_I2C, ENABLE);
  /* sEE_I2C configuration after enabling it */
  I2C_Init(sEE_I2C, I2C_SPEED, I2C_SLAVE_ADDRESS7, I2C_Mode_I2C, I2C_DutyCycle_2,
           I2C_Ack_Enable, I2C_AcknowledgedAddress_7bit);

do the init order have some problem?

below one is common:

void Init(void)
 
      {
 
        I2C_DeInit(I2C1);
       I2C_Init(I2C1,IICSPEED, host_address, I2C_Mode_I2C,I2C_DutyCycle_2, I2C_Ack_Enable, I2C_AcknowledgedAddress_7bit);
       I2C_Cmd(I2C1,ENABLE);
      }

I2C_Cmd(sEE_I2C, ENABLE);
I2C_DeInit(sEE_I2C);
  /* sEE_I2C configuration after enabling it */
I2C_Init(sEE_I2C, I2C_SPEED, I2C_SLAVE_ADDRESS7, I2C_Mode_I2C, I2C_DutyCycle_2,
I2C_Ack_Enable, I2C_AcknowledgedAddress_7bit);

is there some bug like above

1 ACCEPTED SOLUTION

Accepted Solutions

I think I'd have the Cmd before the DeInit.

For ST's I2C the usual means to set up is Cmd then Init, issue with the pins and I2C peripheral getting stuck in BUSY state.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

View solution in original post

2 REPLIES 2

I think I'd have the Cmd before the DeInit.

For ST's I2C the usual means to set up is Cmd then Init, issue with the pins and I2C peripheral getting stuck in BUSY state.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

issue with the pins and I2C peripheral getting stuck in BUSY state?

could you say more about it