I2C - Режим ведомого

Материал из MIK32 микроконтроллер
Версия от 14:06, 17 марта 2023; Андрей (обсуждение | вклад) (Новая страница: «В примере будет проведена настройка I2C в режиме ведомого. == Работа с конфигуратором (В разработке) == Для начала настроем в конфигураторе тактирование mik32, например, от внешнего кварца 32МГц. Затем настроем делители шины. Так как SPI тактируется от шины APB_P_C...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

В примере будет проведена настройка I2C в режиме ведомого.

Работа с конфигуратором (В разработке)

Для начала настроем в конфигураторе тактирование mik32, например, от внешнего кварца 32МГц. Затем настроем делители шины. Так как SPI тактируется от шины APB_P_CLK, то зададим делитель AHB_DIV и APB_P_CLK. В данном примере оставим делитель по умолчанию. В итоге вкладка с тактированием должна выглядеть так:

(Картинка тактирования из конфигуратора. В работе)

Затем перейдем к настройке самого I2C. Для этого откроем вкладку интерфейсы, выберем SPI и зададим режим работы ведомый. После этого появятся несколько настроек. Зададим им следующие значения:

(Настройки)

В итоге настройки SPI в конфигураторе должны выглядеть как на рисунке.

Нажимаем кнопку сохранения и генерации. В итоге у нас появится проект для PlatformIo. Далее работа идет в visual studio code.

Использование библиотеки HAL_I2C

В сгенерированном проекте в файле main.c должна быть функция I2C0_Init, в которой будут заданы настройки для I2C. Выглядит она так: