打印

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

[复制链接]
1802|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 | 只看该作者
有可能是中断配置问题

使用特权

评论回复
5
kerb_huang|  楼主 | 2024-8-12 18:42 | 只看该作者
I2C0 可以正常运行

使用特权

评论回复
6
gongqijuns| | 2024-8-19 10:58 | 只看该作者
你说I2C0可以用,I2C1不行?

使用特权

评论回复
7
ewyu| | 2024-8-19 12:02 | 只看该作者
你是不是配置不对啊?复用的IO都检查一下?

使用特权

评论回复
8
一切D都好| | 2024-8-19 13:14 | 只看该作者
正常I2C0和I2C1应该都是支持从机模式的

使用特权

评论回复
9
yuliangren| | 2024-8-19 14:16 | 只看该作者
请确保I2C1的引脚连接正确,包括SDA和SCL引脚的连接以及上拉电阻的设置

使用特权

评论回复
10
清芯芯清| | 2024-8-19 15:22 | 只看该作者
请检查I2C1从机的中断配置是否正确。需要正确配置NVIC中断向量表和使能相应的中断

使用特权

评论回复
11
miltk| | 2024-8-19 16:30 | 只看该作者
看看地址,保证从机地址设置正确,与主机发送的地址匹配

使用特权

评论回复
12
onlycook| | 2024-8-19 18:39 | 只看该作者
可能是中断向量表或中断优先级设置不正确,导致中断请求被忽略。

使用特权

评论回复
13
laocuo1142| | 2024-8-19 19:26 | 只看该作者
中断使能位未正确设置,或中断被意外禁用。

使用特权

评论回复
14
flycamelaaa| | 2024-8-19 20:00 | 只看该作者
I2C从机地址配置错误,导致主机无法正确识别从机。

使用特权

评论回复
15
powerantone| | 2024-8-19 21:56 | 只看该作者
I2C引脚复用和GPIO配置不正确,影响信号传输。

使用特权

评论回复
16
stormwind123| | 2024-8-19 22:00 | 只看该作者
中断服务例程(ISR)编写错误,导致无法正确响应中断

使用特权

评论回复
17
probedog| | 2024-8-19 22:56 | 只看该作者
I2C接口硬件故障,如引脚短路、开路或接触不良。

使用特权

评论回复
18
classroom| | 2024-8-19 23:00 | 只看该作者
外部干扰吧可能是受到

使用特权

评论回复
19
hhdhy| | 2024-8-20 08:30 | 只看该作者
从机模式设置问题也有可能,请确保从机模式设置正确,包括从机地址模式、地址识别模式等

使用特权

评论回复
20
tiakon| | 2024-8-20 10:13 | 只看该作者
仿真看看有啥问题呗,看看程序进到哪儿了

使用特权

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

本版积分规则

9

主题

58

帖子

4

粉丝