[其他] i2c的配置

[复制链接]
 楼主| mutable 发表于 2021-8-3 14:24 | 显示全部楼层 |阅读模式
  1. /**
  2. * [url=home.php?mod=space&uid=555622]@prototype[/url] I2C_InitHardwr(void)
  3. *
  4. * @param[in] void
  5. * @return         void
  6. *
  7. * [url=home.php?mod=space&uid=247401]@brief[/url]           Initalize I2C module.
  8. *                         初始化I2C模块.
  9. */
  10. void I2C_InitHardwr(void)
  11. {
  12.         I2C_ConfigType i2cConfig = {0};
  13.        
  14.         GPIO_SetFunc(I2C1_SDA_PIN, GPIO_FUNC_1);
  15.         GPIO_SetFunc(I2C1_SCL_PIN, GPIO_FUNC_1);
  16.        
  17.         i2cConfig.setting.master = ENABLE;
  18.         i2cConfig.setting.intEn  = ENABLE;
  19.         i2cConfig.setting.i2cEn  = ENABLE;
  20.         i2cConfig.setting.syncEn = ENABLE;
  21.         i2cConfig.setting.nackIntEn = ENABLE;
  22.         i2cConfig.setting.dmaRxEn = ENABLE;
  23.         i2cConfig.setting.dmaTxEn = ENABLE;
  24.        
  25.         i2cConfig.addr1        = I2C_SLAVE_ADDR;
  26.         #if (I2C_STAND_MODE)//100K波特率
  27.         i2cConfig.sampleCNT = 11;//speed = APBclk/((sampleCnt+1)*(stepCNT+1)*2)
  28.         i2cConfig.stepCNT = 19;
  29.         #else //400K波特率
  30.         i2cConfig.sampleCNT = 11;//speed = APBclk/((sampleCnt+1)*(stepCNT+1)*2)
  31.         i2cConfig.stepCNT = 4;
  32.         #endif
  33.         I2C_SetEventCallback(I2C1, I2C_DMACallback);
  34.         I2C_Initialize(I2C1, &i2cConfig);
  35. }


之前一直使用IO模拟的
看例程有专门的硬件配置
感觉不错,
大家品评下
weifeng90 发表于 2021-8-4 08:49 来自手机 | 显示全部楼层
有硬件IIC当然更好,软件模拟效率太低了。
match007 发表于 2021-8-4 16:58 | 显示全部楼层
就是用硬件,速率会高一点
redone 发表于 2021-8-5 15:23 | 显示全部楼层
不错,有机会试一试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

598

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部