GD32E230K8U6 I2C1从机 不能进入中断, GD32E230的IIC做为从机是不是有问题?

[复制链接]
2906|12
 楼主| kerb_huang 发表于 2024-7-26 13:11 | 显示全部楼层 |阅读模式
本帖最后由 kerb_huang 于 2024-7-27 12:31 编辑

GD32E230K8U6 QFN32封装, 使用PA11  PA12做I2C1从机, 不能进入中断,请问什么原因

// *********
    // iic1;
    /* enable GPIOA clock */
        rcu_periph_clock_enable(RCU_GPIOA);

        /* connect PA11 to  I2C1_SCL */
        gpio_af_set(GPIOA, GPIO_AF_7, I2C1_SCL_PIN);
        /* connect PA12 to I2C1_SDA */
        gpio_af_set(GPIOA, GPIO_AF_6, I2C1_SDA_PIN);
        /* configure GPIO pins of I2C1 */
        gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, I2C1_SCL_PIN);
        gpio_output_options_set(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_2MHZ, I2C1_SCL_PIN);

        gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, I2C1_SDA_PIN);
        gpio_output_options_set(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_2MHZ, I2C1_SDA_PIN);

    /* enable I2C clock */
        rcu_periph_clock_enable(RCU_I2C1);

        i2c_deinit(I2C1);

        /* configure I2C clock */
        i2c_clock_config(I2C1, I2C_SPEED, I2C_DTCY_2);
        /* configure I2C address */
        i2c_mode_addr_config(I2C1, I2C_I2CMODE_ENABLE, I2C_ADDFORMAT_7BITS, I2C1_SLAVE_ADDRESS7);

        /* enable and set  interrupt to the lowest priority */
        nvic_irq_enable(I2C1_ER_IRQn, 2U);
        nvic_irq_enable(I2C1_EV_IRQn, 2U);

        // BUFIE, event interrupt enable ,error interrupt enable;
        i2c_interrupt_enable(I2C1,  I2C_INT_ERR);
        i2c_interrupt_enable(I2C1,  I2C_INT_EV );
        i2c_interrupt_enable(I2C1,  I2C_INT_BUF);

        /* enable I2C1 */
        i2c_enable(I2C1);
        /* enable acknowledge */
        i2c_ack_config(I2C1, I2C_ACK_ENABLE);
 楼主| kerb_huang 发表于 2024-7-26 16:20 | 显示全部楼层
有大佬碰到过这种情况吗
 楼主| kerb_huang 发表于 2024-7-26 18:22 | 显示全部楼层
这个芯片有问题?
小小蚂蚁举千斤 发表于 2024-7-31 23:01 | 显示全部楼层
有可能是中断配置问题
 楼主| kerb_huang 发表于 2024-8-12 18:42 | 显示全部楼层
I2C0 可以正常运行
gongqijuns 发表于 2024-8-19 10:58 | 显示全部楼层
你说I2C0可以用,I2C1不行?
ewyu 发表于 2024-8-19 12:02 | 显示全部楼层
你是不是配置不对啊?复用的IO都检查一下?
一切D都好 发表于 2024-8-19 13:14 | 显示全部楼层
正常I2C0和I2C1应该都是支持从机模式的
yuliangren 发表于 2024-8-19 14:16 | 显示全部楼层
请确保I2C1的引脚连接正确,包括SDA和SCL引脚的连接以及上拉电阻的设置
清芯芯清 发表于 2024-8-19 15:22 | 显示全部楼层
请检查I2C1从机的中断配置是否正确。需要正确配置NVIC中断向量表和使能相应的中断
miltk 发表于 2024-8-19 16:30 | 显示全部楼层
看看地址,保证从机地址设置正确,与主机发送的地址匹配
onlycook 发表于 2024-8-19 18:39 | 显示全部楼层
可能是中断向量表或中断优先级设置不正确,导致中断请求被忽略。
laocuo1142 发表于 2024-8-19 19:26 | 显示全部楼层
中断使能位未正确设置,或中断被意外禁用。
flycamelaaa 发表于 2024-8-19 20:00 | 显示全部楼层
I2C从机地址配置错误,导致主机无法正确识别从机。
powerantone 发表于 2024-8-19 21:56 | 显示全部楼层
I2C引脚复用和GPIO配置不正确,影响信号传输。
stormwind123 发表于 2024-8-19 22:00 | 显示全部楼层
中断服务例程(ISR)编写错误,导致无法正确响应中断
probedog 发表于 2024-8-19 22:56 | 显示全部楼层
I2C接口硬件故障,如引脚短路、开路或接触不良。
classroom 发表于 2024-8-19 23:00 | 显示全部楼层
外部干扰吧可能是受到
hhdhy 发表于 2024-8-20 08:30 | 显示全部楼层
从机模式设置问题也有可能,请确保从机模式设置正确,包括从机地址模式、地址识别模式等
tiakon 发表于 2024-8-20 10:13 | 显示全部楼层
仿真看看有啥问题呗,看看程序进到哪儿了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

60

帖子

4

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