winamp123 发表于 2018-4-4 09:22:13

stm32l496 G端口I2C1没有输出,其他口却可以?

最近调试496 I2C遇到个问题。I2C1映射到Port G PG13/PG14没有输出,然而映射到B端口 PB6/PB7却正常。初始化代码如下,已经使能了VDDIO2。请问哪位高手有经验,是否G端口还有其他设置? 谢谢。

    LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOG);
    HAL_PWREx_EnableVddIO2();

    LL_GPIO_SetPinMode(GPIOG, LL_GPIO_PIN_13, LL_GPIO_MODE_ALTERNATE);
    LL_GPIO_SetAFPin_0_7(GPIOG, LL_GPIO_PIN_13, LL_GPIO_AF_4);
    LL_GPIO_SetPinSpeed(GPIOG, LL_GPIO_PIN_13, LL_GPIO_SPEED_FREQ_HIGH);
    LL_GPIO_SetPinOutputType(GPIOG, LL_GPIO_PIN_13, LL_GPIO_OUTPUT_OPENDRAIN);
    LL_GPIO_SetPinPull(GPIOG, LL_GPIO_PIN_13, LL_GPIO_PULL_UP);

    LL_GPIO_SetPinMode(GPIOG, LL_GPIO_PIN_14, LL_GPIO_MODE_ALTERNATE);
    LL_GPIO_SetAFPin_0_7(GPIOG, LL_GPIO_PIN_14, LL_GPIO_AF_4);
    LL_GPIO_SetPinSpeed(GPIOG, LL_GPIO_PIN_14, LL_GPIO_SPEED_FREQ_HIGH);
    LL_GPIO_SetPinOutputType(GPIOG, LL_GPIO_PIN_14, LL_GPIO_OUTPUT_OPENDRAIN);
    LL_GPIO_SetPinPull(GPIOG, LL_GPIO_PIN_14, LL_GPIO_PULL_UP);

toofree 发表于 2018-4-4 09:36:07

用HAL库试一下,LL库可能会有坑,HAL库相对靠谱些。
前段时间有坛友说STM32F103的LL库有坑,经我实验确认的确有坑,无法操作8到15的IO口。

MrJiu 发表于 2018-4-4 09:39:24

I2C我记得要配置成开漏输出,然后外部上拉!!!当然了我不知道你这里的不输出指的是啥?没法直接拉高电平?还是说I2C没法输出高电平?

发表于 2018-4-4 09:47:57

我看了一下手册,PB6 PB7还有I2C4的功能,楼主用的是I2C几?最好是用cubemx生成一个例程看看。

winamp123 发表于 2018-4-4 14:46:52

确定用的I2C1,发送地址后ISR中的BUSY一直为1,也不产生STOP;
同样的设置I2C2 发送却没问题。

发表于 2018-4-8 09:59:02

示波器看一下波形是否正常?

winamp123 发表于 2018-4-13 08:48:57

谢谢以上的回复。我用HAL库发现正常,看来LL还是有些设置没考虑到,我也不想费时去比较差异了,先这么用着。
页: [1]
查看完整版本: stm32l496 G端口I2C1没有输出,其他口却可以?