经过前面第一个外设的学习,大概也是知道外设在RT1052里面的配置套路。大致如下。开始: 准备1:先在drivers里添加lpiic的driver 准备2:添加头文件includefsllpi2c。h 1。配置iicgpio在InitPins里面实现 2。配置iic时钟 3。配置defaultmaster的配置 4。配置iicmaster配置 GPIO的配置代码如下:IOMUXCSetPinMux( IOMUXCGPIOADB100LPI2C1SCL,GPIOADB100isconfiguredasLPI2C1SCL 1U); SoftwareInputOnField:InputPathisdeterminedbyfunctionality IOMUXCSetPinMux( IOMUXCGPIOADB101LPI2C1SDA,GPIOADB101isconfiguredasLPI2C1SDA 1U);SoftwareInputOnField:InputPathisdeterminedbyfunctionality IOMUXCSetPinConfig(IOMUXCGPIOADB100LPI2C1SCL,0x18B0U); IOMUXCSetPinConfig(IOMUXCGPIOADB101LPI2C1SDA,0x18B0U); 以上使用mcuxpressoconfig的工具生成的 然后需要对IIc的时钟进行配置,具体这个时钟怎么配对应那个可以看看sdk里面的描述ClocksettingforLPI2C CLOCKSetMux(kCLOCKLpi2cMux,0u); CLOCKSetDiv(kCLOCKLpi2cDiv,5u); 附sdk的地址 C:UsersxutongDownloadsCompressedSDK2121MIMXRT1052xxxxBboardsevkbimxrt1050driverexamples 其次对lpi2c的外设做一些default的配置,如果你要修改直接修改结构体参数即可。lpi2cmasterconfigtlpi2cConfig{0}; lpi2cConfig。debugEnablefalse; lpi2cConfig。ignoreAckfalse; lpi2cConfig。pinConfigkLPI2C2PinOpenDrain; lpi2cConfig。baudRateHz100000U; lpi2cConfig。busIdleTimeoutns0; lpi2cConfig。pinLowTimeoutns0; lpi2cConfig。sdaGlitchFilterWidthns0; lpi2cConfig。sclGlitchFilterWidthns0; LPI2CMasterGetDefaultConfig(lpi2cConfig); LPI2CMasterInit(EEPROMI2CMASTER,lpi2cConfig,LPI2C1CLOCKFREQ); 最后写blocker大概配置,booliicsend(void) { lpi2cmastertransferttrans; statustreValkStatusFail; uint8tdatas〔〕{0x55,0xaa}; trans。datadatas; trans。dataSize2; trans。directionkLPI2CWrite; trans。slaveAddress(0xa01); trans。subaddress0x01; trans。subaddressSize0x01; trans。flagskLPI2CTransferDefaultFlag; reValLPI2CMasterTransferBlocking(LPI2C1,trans); if(reVal!kStatusSuccess){ return1; } return0; } 具体怎么编可以看NXP的api参考 https:mcuxpresso。nxp。comapidocdev2349a00052。html 最后验证LPI2C的效果如下 测试环境如下