Я хочу написать в собственную библиотеку i2c на stm32f407. Как определить входную и выходную ветви - PullRequest
0 голосов
/ 30 сентября 2019

Я хочу написать в собственную библиотеку i2c по адресу stm32f407. Я должен использовать как вход, так и выход на одном и том же контакте (ноги). Пример SDA: PD15, SCL: PD14. PD15 и pd14 являются как входными, так и выходными. как можно определить этот вход, вывод в stm32f407

1 Ответ

0 голосов
/ 30 сентября 2019

Я предполагаю, что вы имеете в виду программный драйвер I 2 C, переключающий биты по одному (разбивка битов), потому что встроенные контроллеры I 2 Cнельзя использовать PD14 или PD15.

Использовать Режим вывода общего назначения в GPIOD->MODER и Выход с открытым стоком в GPIOD->OTYPER.

GPIOD->MODER = (GPIOD->MODER & ~(GPIO_MODER_MODER14 | GPIO_MODER_MODER15)) | GPIO_MODER_MODER14_0 | GPIO_MODER_MODER15_0;
GPIOD->OTYPER |= GPIO_OTYPER_OT_14 | GPIO_OTYPER_OT_15;
...