#include "fsl_iomuxc.h"
void LPI2C3_Pins_Init(void)
{
/* Включение тактирования модуля IOMUXC (если не включено ранее) */
CLOCK_EnableClock(kCLOCK_Iomuxc);
/* Настройка пина SCL (LPI2C3_SCL) */
/* Режим Open Drain (открытый сток) обязателен для I2C! Включаем также pull-up */
IOMUXC_SetPinMux(IOMUXC_PAD_I2C3_SCL__LPI2C3_SCL, 0U);
IOMUXC_SetPinConfig(IOMUXC_PAD_I2C3_SCL__LPI2C3_SCL,
IOMUXC_PAD_PCR_ODE_MASK | // Open Drain Enable
IOMUXC_PAD_PCR_PUS_MASK | // Pull Up/Down Selection (Pull Up)
IOMUXC_PAD_PCR_PUE_MASK); // Pull Enable
/* Настройка пина SDA (LPI2C3_SDA) */
IOMUXC_SetPinMux(IOMUXC_PAD_I2C3_SDA__LPI2C3_SDA, 0U);
IOMUXC_SetPinConfig(IOMUXC_PAD_I2C3_SDA__LPI2C3_SDA,
IOMUXC_PAD_PCR_ODE_MASK |
IOMUXC_PAD_PCR_PUS_MASK |
IOMUXC_PAD_PCR_PUE_MASK);
}
void LPI2C3_Clock_Init(void)
{
/* Назначение источника тактирования для LPI2C3 (например, SYS_PLL1_DIV2 или OSC_24M) */
CLOCK_SetIpSrc(kCLOCK_Lpi2c3, kCLOCK_IpSrcSysPll1Div2);
CLOCK_EnableClock(kCLOCK_Lpi2c3);
}