Загрузка данных


#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);
}