在线时间2 小时
UID3670690
ST金币10
蝴蝶豆0
注册时间2020-9-17
该用户从未签到
新手上路
- 最后登录
- 2020-9-25
|
请教各位大神,我刚刚开始学习STM32,使用的是STM32G474RE的测试板环境,I2C初始化还搞不太清楚。我使用LL的测试例子I2C_OneBoard_Communication_IT,I2C3初始化后可以正常使用。我把代码改成I2C4之后发现对应的PC6和PC7脚好像都没有初始化成功,现象是初始化后,PC6和PC7都一直是低(我已经配置了内部上拉),而同样的配置用在I2C3上,对应的PC8和PC9是能拉高的。请帮忙看看我是不是哪个地方的初始化不对?
/* (1) Enables GPIO clock and configures the I2C4 pins **********************/
/* (SCL on PC.6, SDA on PC.7) **********************/
/* Enable the peripheral clock of GPIOC */
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOC);
/* Configure SCL Pin as : Alternate function, High Speed, Open drain, Pull up */
LL_GPIO_SetPinMode(GPIOC, LL_GPIO_PIN_6, LL_GPIO_MODE_ALTERNATE);
LL_GPIO_SetAFPin_8_15(GPIOC, LL_GPIO_PIN_6, LL_GPIO_AF_8);
LL_GPIO_SetPinSpeed(GPIOC, LL_GPIO_PIN_6, LL_GPIO_SPEED_FREQ_HIGH);
LL_GPIO_SetPinOutputType(GPIOC, LL_GPIO_PIN_6, LL_GPIO_OUTPUT_OPENDRAIN);
#if (EXTERNAL_PULL_UP_AVAILABLE == 0)
LL_GPIO_SetPinPull(GPIOC, LL_GPIO_PIN_6, LL_GPIO_PULL_UP);
#else
LL_GPIO_SetPinPull(GPIOC, LL_GPIO_PIN_6, LL_GPIO_PULL_NO);
#endif
/* Configure SDA Pin as : Alternate function, High Speed, Open drain, Pull up */
LL_GPIO_SetPinMode(GPIOC, LL_GPIO_PIN_7, LL_GPIO_MODE_ALTERNATE);
LL_GPIO_SetAFPin_8_15(GPIOC, LL_GPIO_PIN_7, LL_GPIO_AF_8);
LL_GPIO_SetPinSpeed(GPIOC, LL_GPIO_PIN_7, LL_GPIO_SPEED_FREQ_HIGH);
LL_GPIO_SetPinOutputType(GPIOC, LL_GPIO_PIN_7, LL_GPIO_OUTPUT_OPENDRAIN);
#if (EXTERNAL_PULL_UP_AVAILABLE == 0)
LL_GPIO_SetPinPull(GPIOC, LL_GPIO_PIN_7, LL_GPIO_PULL_UP);
#else
LL_GPIO_SetPinPull(GPIOC, LL_GPIO_PIN_7, LL_GPIO_PULL_NO);
#endif
/* (2) Enable the I2C4 peripheral clock *************************************/
/* Enable the peripheral clock for I2C4 */
LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_I2C4);
/* Set I2C4 clock source as SYSCLK */
LL_RCC_SetI2CClockSource(LL_RCC_I2C4_CLKSOURCE_SYSCLK);
/* (3) Configure NVIC for I2C4 **********************************************/
。。。
|
|