1. 程式人生 > >STM32中FSMC與硬體I2C衝突

STM32中FSMC與硬體I2C衝突

ST官網勘誤表中列到,FSMC與I2C不能同時開啟。解決的辦法可以有
1:將I2C對映到PB9,PB8.
2:使用模擬的I2C.

I/O重對映步驟:(以串列埠為例)
1.開啟重對映時鐘和USART重對映後的I/O口引腳時鐘,

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  |RC C_APB2Periph_AFIO,ENABLE);

2.I/O口重對映開啟.

  GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);

3.配製重對映引腳, 這裡只需配置重對映後的I/O,原來的不需要去配置.(對映的引腳是固定的,查手冊可得)

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

 GPIO_Init(GPIOB, &GPIO_InitStructure);


 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

 GPIO_Init(GPIOB, &GPIO_InitStructure);