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);
用HAL库试一下,LL库可能会有坑,HAL库相对靠谱些。
前段时间有坛友说STM32F103的LL库有坑,经我实验确认的确有坑,无法操作8到15的IO口。
I2C我记得要配置成开漏输出,然后外部上拉!!!当然了我不知道你这里的不输出指的是啥?没法直接拉高电平?还是说I2C没法输出高电平? 我看了一下手册,PB6 PB7还有I2C4的功能,楼主用的是I2C几?最好是用cubemx生成一个例程看看。 确定用的I2C1,发送地址后ISR中的BUSY一直为1,也不产生STOP;
同样的设置I2C2 发送却没问题。 示波器看一下波形是否正常? 谢谢以上的回复。我用HAL库发现正常,看来LL还是有些设置没考虑到,我也不想费时去比较差异了,先这么用着。
页:
[1]