Hi Leute, ich hab ein Problem : Ich hatte Probleme mit dem PB4 pin meines STM32 (Ich konnte den Pin einfach nicht auf H oder L schalten, war immer H). Nach Stundenlanger fehlersuche in der Hardware habe ich dann den Fehler gefunden. Der PB4 ist standartmäßig auf NJTRST gesetzt. Um den GPIO zu aktivieren muss ich erst die Alternate Remap funktion anschalten. Jetzt meine Frage: Wie genau mach ich das? Ich bekomme es nicht hin.
1 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); |
2 | GPIO_InitTypeDef GPIO_I2C_InitStructure; |
3 | GPIO_I2C_InitStructure.GPIO_Pin = I2C1_SCL_PIN | I2C1_SDA_PIN; |
4 | GPIO_I2C_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; |
5 | GPIO_I2C_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; |
6 | GPIO_Init(GPIOB, &GPIO_I2C_InitStructure); |
7 | |
8 | GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE ); |
9 | AFIO->MAPR = AFIO_MAPR_SWJ_CFG_0; // Weder mit noch ohne diese Zeile geht es |
10 | |
11 | GPIO_I2C_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_4 ; |
12 | GPIO_I2C_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; |
13 | GPIO_Init(GPIOB, &GPIO_I2C_InitStructure); |
14 | |
15 | GPIO_I2C_InitStructure.GPIO_Pin = GPIO_Pin_4 ; |
16 | GPIO_I2C_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; |
17 | GPIO_Init(GPIOB, &GPIO_I2C_InitStructure); |
Der Pin5 Funktioniert tadellos! Für Hilfe wäre ich dankbar. Grüße Tarkan