Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[STM32F103] - PB4, PB5 - dziwne działanie

szyman91 07 Mar 2013 18:31 1626 2
  • #1
    szyman91
    Level 2  
    Witam, od paru godzin zmagam się z dziwnym działaniem pinów PB4 i PB5, które chcę skonfigurować jako wejścia (pull-up). Otóż domyślnie po resecie pin PB4 jest skonfigurowany jako JNRST - mimo tego po skonfigurowaniu go jako wejścia, procesor prawidłowo odczytuje to co podam na jego wejście. W tym samym czasie, tak samo skonfigurowany pin PB5 jest cały czas odczytywany jako 0. Gdy wyłącze JTAGa :
    Code: c
    Log in, to see the code

    pin PB4 przestaje działać (tzn. zachowuje się tak samo jak PB5). PB5 nie zmienia swojego (wadliwego) zachowania.

    Pod porty te podpięte mam tact switche, które zwierają do masy.Zegar dla AFIO włączyłem. A więc co robie nie tak? Dodam, że w STMach raczkuję.
  • Helpful post
    #2
    m.ki
    Level 15  
    szyman91 wrote:
    Witam, od paru godzin zmagam się z dziwnym działaniem pinów PB4 i PB5, które chcę skonfigurować jako wejścia (pull-up). Otóż domyślnie po resecie pin PB4 jest skonfigurowany jako JNRST - mimo tego po skonfigurowaniu go jako wejścia, procesor prawidłowo odczytuje to co podam na jego wejście. W tym samym czasie, tak samo skonfigurowany pin PB5 jest cały czas odczytywany jako 0. Gdy wyłącze JTAGa :
    Code: c
    Log in, to see the code

    pin PB4 przestaje działać (tzn. zachowuje się tak samo jak PB5). PB5 nie zmienia swojego (wadliwego) zachowania.

    Pod porty te podpięte mam tact switche, które zwierają do masy.Zegar dla AFIO włączyłem. A więc co robie nie tak? Dodam, że w STMach raczkuję.

    Przede wszystkim nie używaj tej idiotycznej biblioteki. Zdaje się, że instrukcja, którą przytoczyłeś, wyłącza JTAG ale nie wyłącza SWD (co w tym konkretnym przypadku nie stanowi problemu).
    Wyłączanie JTAG/SWD odbywa się przez zapis do AFIO->MAPR, można to zrobić na kilka możliwości (patrz manual, rozdział "9.3.5 JTAG/SWD alternate function remapping".
    Czy włączyłeś zegar dla GPIOB?
    Czy poprawnie inicjujesz piny portu B?

    Pozdrowienia,
    m.ki
  • #3
    szyman91
    Level 2  
    SWD nie wyłączam, bo używam do programowania/debuggowania. Zegar dla GPIOB włączony.

    Problem udało się załatwić - wyjścia tych pinów były przypadkowo ustawione błędnie, co skutkowało podwieszeniem do masy. Dziękuje za pomoc