找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 684|回复: 1
收起左侧

单片机程序 I2C一使能,I2CBSY就被置上了,我复位后再初始化使能,I2CBSY又被置上了

[复制链接]
ID:1062719 发表于 2023-4-15 15:48 | 显示全部楼层 |阅读模式
void I2C_Initialize(void)
{
        uint32_t tick;
        // GPIO clock enable
        rcu_periph_clock_enable(RCU_GPIOB);
        rcu_periph_clock_enable(RCU_I2C1);
        i2c_deinit(I2C1);
        gpio_init(GPIOB, GPIO_MODE_AF_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_10 | GPIO_PIN_11);

        /* I2C clock configure */
        i2c_clock_config(I2C1, 400000, I2C_DTCY_2);
        /* I2C address configure */
        i2c_mode_addr_config(I2C1, I2C_I2CMODE_ENABLE, I2C_ADDFORMAT_7BITS, 0x00);
        /* enable EEPROM_I2CDEV */
        i2c_enable(I2C1);
        /* enable acknowledge */
        i2c_ack_config(I2C1, I2C_ACK_ENABLE);
        
        tick =osKernelGetSysTimerCount();
        /* wait until I2C bus is idle */
        while(i2c_flag_get(I2C1, I2C_FLAG_I2CBSY))
        {
                if((tick+30)<osKernelGetSysTimerCount())
                {
                        i2c_deinit(I2C1);
                        i2c_software_reset_config(I2C1,I2C_SRESET_SET);
                        i2c_software_reset_config(I2C1,I2C_SRESET_RESET);
                        I2C_Initialize();
                }
        }
}
配置有什么问题吗?我以前也是这么配的

回复

使用道具 举报

ID:1062719 发表于 2023-5-16 11:15 | 显示全部楼层
忘记结帖了,引脚速度配置的太块
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表