Jeśli ktoś jeszcze walczyłby z tym problemem to trzeba kod ustawiający PB4 zmienić na:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tak się składa, że domyślnie PB4 ma odmiennie ustawiony tryb pracy tuż po resecie, właśnie dlatego, że jest domyślnie wykorzystywany przez JTAG. Opis w Reference Manualu
może wprowadzać w błąd sugerując, że rejestry portów przyjmują wartość 0x44444444.
Tymczasem, na bitach CNF4[1:0] nie jest 0b01, tylko 0b10. Stąd zerując bit CNF4_0, tak na prawdę nic się nie zmienia. Należy wyzerować CNF4_1 by uzyskać pracę pinu jako wyjście typu push-pull jak w pozostałych.
Trzeba uważnie doczytać punkt 9.1.1.