kerb_huang 发表于 2024-7-26 13:11

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

本帖最后由 kerb_huang 于 2024-7-27 12:31 编辑

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

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

      /* connect PA11 toI2C1_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 setinterrupt 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

仿真看看有啥问题呗,看看程序进到哪儿了
页: [1]
查看完整版本: GD32E230K8U6 I2C1从机 不能进入中断, GD32E230的IIC做为从机是不是有问题?