logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Przekazywanie danych z ADC1 przez USART w mikrokontrolerze STM32F103 - Kod i szczegóły

Piotr455M 13 Sty 2021 13:20 654 3
REKLAMA
  • #1 19180352
    Piotr455M
    Poziom 8  
    Posty: 13
    Ocena: 1
    Cześć, mam problem z przekazywaniem danych z ADC1 mikrokontrolera STM32F103 przez USART. Poniżej przedstawię kawałek kodu i opisze mój problem:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Taki przykład dostaliśmy od prowadzącego na studiach, problem polega na tym, że w funkcja ADC1_2_IRQHandler omija if'a tak jakby dane nie były przekazywane do flagi SR, ogólnie chciałbym się dowiedzieć w którym miejscu jest problem, czy jest coś nie tak z konfiguracją ADC? Czy chodzi o zupełnie coś innego, z góry dziękuję za pomoc i proszę o wyrozumiałość, dopiero się uczę ;)
  • REKLAMA
  • #2 19268123
    nuclear
    Poziom 16  
    Posty: 194
    Pomógł: 18
    Ocena: 145
    Nie wiem czy udało CI się już rozwiązać ten problem ,ale nasuwa mi się dość podstawowe pytanie - czy dodałeś funkcję ADC1_2_IRQHandler w pliku Target_Startup.s (w zależności od środowiska może się inaczej nazywać) na odpowiedniej pozycji? Innymi słowy, czy masz pewność że funkcja ADC1_2_IRQHandler jest wywoływana tylko if nie jest spełniony?
  • REKLAMA
  • Pomocny post
    #3 19268357
    BlueDraco
    Specjalista - Mikrokontrolery
    Posty: 6479
    Pomógł: 939
    Ocena: 421
    Ta linijka wygląda podejrzanie:
    ADC1 -> SQR3 |= ADC_SQR3_SQ1|ADC_SQR3_SQ1_2; //CHANEL 6 SELECT

    A ta jest błędna, ale "czasem zadziała" ;)
    ADC1->SR &=~ADC_SR_EOC;

    W kodzie powyżej nie ma włączenia timera, a niewłączony raczej nie wyzwoli ADC.
  • #4 19268385
    Piotr455M
    Poziom 8  
    Posty: 13
    Ocena: 1
    Problem już dawno rozwiązany, bo gdyby nie był to cały rok by uwalił przedmiot, w odpowiedzi czy mam pewność czy funkcja była wywoływana to tak, była. Niestety już nie pamiętam co dokładnie było błędem ale trochę tego było. W każdym bądź razie bardzo pomocny był blog Radosława Kwietnia (mam nadzieję, że tak się odmienia) do którego daje link poniżej:
    http://en.radzio.dxp.pl/stm32vldiscovery/less...d4I2l-AY3RsYU350BLX-c1X8ZAt3ZXU_ZoVhc-qIVzTc8
REKLAMA