I2C не умеет запускаться - PullRequest
       114

I2C не умеет запускаться

0 голосов
/ 10 ноября 2019

Я использую контроллер stm8s и компилятор SDCC. Я взаимодействую с контроллером RTC на основе SD130S7 I 2 C. Я сталкиваюсь с проблемой во время общения. Я думаю, что проблема в том, что я 2 C сам по себе не запущен.

Я использую плату разработки для STM8S103.

Я проверил на логическом анализаторе, и я вижу, что естьтолько один импульс на выводе SDA.

Я запутался, почему у SDA есть пульс, а у SCL нет. (Поскольку SCL - это часы, а часы должны присутствовать вначале).

void init_i2c_master(void)
{

    CLK_PCKENR1 |= 0x01;    //enable i2c clocks

    I2C_CR1 &= ~(0x01);     //Disable the i2c before configuration starts
    I2C_FREQR = 16;//  Set the internal clock 16 frequency (MHz).
    I2C_OARH = 0xC0;        //set 7 bit addressing mode
    I2C_TRISER = 16 + 1;
    I2C_CCRL = (uint8_t)(16*5);
    I2C_CCRH = 0;
    I2C_CR1 |= 0x01;        //enable i2c peripheral
    I2C_CR2 |= 0x04;
    I2C_CR2 &= ~0x08;
    I2C_ITR |= (0x01 | 0x02);
}
...