RT1052(3) LPI2C的使用

经过前面第一个外设的学习,大概也是知道外设在RT1052里面的配置套路。大致如下。

// 开始:

// 准备1:先在drivers 里添加lpiic的 driver

// 准备2:添加头文件 #include "fsl_lpi2c.h"

// 1.配置iic gpio 在InitPins 里面实现

// 2.配置iic 时钟

// 3.配置default master的配置

// 4.配置iic master配置

GPIO的配置代码如下:

IOMUXC_SetPinMux(

IOMUXC_GPIO_AD_B1_00_LPI2C1_SCL, /* GPIO_AD_B1_00 is configured as LPI2C1_SCL */

1U);

/* Software Input On Field: Input Path is determined by functionality */

IOMUXC_SetPinMux(


IOMUXC_GPIO_AD_B1_01_LPI2C1_SDA, /* GPIO_AD_B1_01 is configured as LPI2C1_SDA */

1U); /* Software Input On Field: Input Path is determined by functionality */

IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_00_LPI2C1_SCL, 0x18B0U);

IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B1_01_LPI2C1_SDA, 0x18B0U);

以上使用mcuxpresso config的工具生成的

然后需要对IIc的时钟进行配置,具体这个时钟怎么配对应那个可以看看sdk里面的描述

/*Clock setting for LPI2C*/

CLOCK_SetMux(kCLOCK_Lpi2cMux, 0u);

CLOCK_SetDiv(kCLOCK_Lpi2cDiv, 5u);

附sdk的地址

C:UsersxutongDownloadsCompressedSDK_2_12_1_MIMXRT1052xxxxBboardsevkbimxrt1050driver_examples

其次对lpi2c的外设做一些default的配置,如果你要修改直接修改结构体参数即可。

lpi2c_master_config_t lpi2cConfig = {0};

/*

* lpi2cConfig.debugEnable = false;

* lpi2cConfig.ignoreAck = false;

* lpi2cConfig.pinConfig = kLPI2C_2PinOpenDrain;

* lpi2cConfig.baudRate_Hz = 100000U;

* lpi2cConfig.busIdleTimeout_ns = 0;

* lpi2cConfig.pinLowTimeout_ns = 0;

* lpi2cConfig.sdaGlitchFilterWidth_ns = 0;

* lpi2cConfig.sclGlitchFilterWidth_ns = 0;

*/

LPI2C_MasterGetDefaultConfig(&lpi2cConfig);

LPI2C_MasterInit(EEPROM_I2C_MASTER , &lpi2cConfig, LPI2C1_CLOCK_FREQ);

最后写blocker 大概配置,

bool iic_send(void)

{

lpi2c_master_transfer_t trans;

status_t reVal = kStatus_Fail;


uint8_t datas[]={0x55,0xaa};

trans.data=datas;

trans.dataSize=2;

trans.direction=kLPI2C_Write;

trans.slaveAddress=(0xa0>>1);

trans.subaddress=0x01;

trans.subaddressSize=0x01;

trans.flags=kLPI2C_TransferDefaultFlag;

reVal = LPI2C_MasterTransferBlocking(LPI2C1,&trans);


if (reVal != kStatus_Success) {

return 1;

}

return 0;

}

具体怎么编可以看NXP的api参考

https://mcuxpresso.nxp.com/api_doc/dev/2349/a00052.html

最后验证LP I2C的效果如下

测试环境如下

展开阅读全文

页面更新:2024-04-16

标签:套路   时钟   外设   参数   效果   结构   代码   地址   环境   测试

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top