ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
17 июля
1436942 Топик полностью
mse homjak (19.05.2024 21:33 - 20.05.2024 12:48, просмотров: 210) ответил Nikolay_Po на Возможно, вы не поняли. В этом случае, через существующую линию 1wire, на дальнем конце, с помощью расширителя портов 1wire, реализован I2C для опроса удалённого I2C-устройства через имеющуюся 1wire-сеть.
Это, как раз, понятно. Я не детализированно обозвал функции. типа 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()

А текст функции, типа, не изменился. ХЗ, стоит оно того...