打印
[其他]

i2c的配置

[复制链接]
3997|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mutable|  楼主 | 2021-8-3 14:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/**
* [url=home.php?mod=space&uid=555622]@prototype[/url] I2C_InitHardwr(void)
*
* @param[in] void
* @return         void
*
* [url=home.php?mod=space&uid=247401]@brief[/url]           Initalize I2C module.
*                         初始化I2C模块.
*/
void I2C_InitHardwr(void)
{
        I2C_ConfigType i2cConfig = {0};
       
        GPIO_SetFunc(I2C1_SDA_PIN, GPIO_FUNC_1);
        GPIO_SetFunc(I2C1_SCL_PIN, GPIO_FUNC_1);
       
        i2cConfig.setting.master = ENABLE;
        i2cConfig.setting.intEn  = ENABLE;
        i2cConfig.setting.i2cEn  = ENABLE;
        i2cConfig.setting.syncEn = ENABLE;
        i2cConfig.setting.nackIntEn = ENABLE;
        i2cConfig.setting.dmaRxEn = ENABLE;
        i2cConfig.setting.dmaTxEn = ENABLE;
       
        i2cConfig.addr1        = I2C_SLAVE_ADDR;
        #if (I2C_STAND_MODE)//100K波特率
        i2cConfig.sampleCNT = 11;//speed = APBclk/((sampleCnt+1)*(stepCNT+1)*2)
        i2cConfig.stepCNT = 19;
        #else //400K波特率
        i2cConfig.sampleCNT = 11;//speed = APBclk/((sampleCnt+1)*(stepCNT+1)*2)
        i2cConfig.stepCNT = 4;
        #endif
        I2C_SetEventCallback(I2C1, I2C_DMACallback);
        I2C_Initialize(I2C1, &i2cConfig);
}


之前一直使用IO模拟的
看例程有专门的硬件配置
感觉不错,
大家品评下

使用特权

评论回复

相关帖子

沙发
weifeng90| | 2021-8-4 08:49 | 只看该作者
有硬件IIC当然更好,软件模拟效率太低了。

使用特权

评论回复
板凳
match007| | 2021-8-4 16:58 | 只看该作者
就是用硬件,速率会高一点

使用特权

评论回复
地板
redone| | 2021-8-5 15:23 | 只看该作者
不错,有机会试一试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

598

帖子

0

粉丝