Это, как раз, понятно. Я не детализированно обозвал функции. типа
setStartIIC() и setStart1wire(). Ну и набор вверх до записи-чтения.
Т.е. это всё уже должно быть написано. Но вызов сделан не как
написал я выше, а как принято в ЦПП. Дажэ не так #define SDAto1 GPIOB->BSHR=bit10SetBSHR
#define SDAto0 GPIOB->BSHR=bit10ResetBSHR
#define SCLto1 GPIOA->BSHR=bit5SetBSHR
#define SCLto0 GPIOA->BSHR=bit5ResetBSHR
...
void i2cStartCond(void)
{
SDAto1;
SCLto1; //SDA,SCL=1
i2c2uSwaitstate();
SDAto0; //SDA=0
i2c2uSwaitstate();
SCLto0; //SCL=0
i2c2uSwaitstate();
}
Т.е ЦПП должэн заменить мои дефайны, например, вызовом функции, которая по 1В установит СДА в 1, и 0. Итыды.
#define SDAto1 bit10Set()
#define SDAto0 bit10Reset()
А текст функции, типа, не изменился. ХЗ, стоит оно того...