Skocz do zawartości

BioPio

Użytkownicy
  • Zawartość

    3
  • Rejestracja

  • Ostatnio

Reputacja

1 Neutralna

O BioPio

  • Ranga
    1/10

Informacje

  • Płeć
    Mężczyzna
  1. Wchodzenie w tryb DFU: kondensator 100nF równolegle z rezystorem 100K podłączony do pinu BOOT0. Kod programu: if(PRZYCISK_DOWN) { GREEN_ON; BLUE_OFF; HAL_GPIO_WritePin(BOOT0_GPIO_Port, BOOT0_Pin, GPIO_PIN_SET); HAL_Delay(1000); NVIC_SystemReset(); } Sposób działa. Po wciśnięciu przycisku uC resetuje się i w DfuSe pojawia się nasz uC w trybie bootloadera. Po odłączeniu i podłączeniu USB uC wykonuje program normalnie. Programowanie mikrokontrolera przez USB zawiera błędy. 1. Generator DFU znajdziemy w folderze z DfuSeDemo. 2. Podczas generowania DFU z pliku bin po wybraniu pliku źródłowego trzeba zmienić adres na (0x)08000000 i kliknąć przycisk "add to list" (nota katalogowa tabela Flash module organization). 3. W DFU Managerze klikamy przycisk Generate. Pominięcie tego kroku sprawi, że wgrywając program nie będzie żadnego transferu danych, a program zwróci zakończenie akcji sukcesem, tak samo porównywanie zawartości uC ze wskazanym plikiem zwróci zawsze sukces. W DefuSeDemo do wgrywania programu służy panel "Upgrade or Verify Action". Przyspieszamy wgrywanie programu zaznaczając "Optimize Upgrade" i wybieramy plik. Wgrywamy program przyciskiem "Upgrade" i po lewej stronie obserwujemy zmieniające się wartości "Transferred data size". Obecnie dziwnie działa opcja Leave DFU mode. Po wgraniu programu czekam 5s wciskam "Verify" czekam kolejne 5s i klikam "Leave DFU mode" część prób kończy się sukcesem i uC rozpoczyna normalną pracę bez odłączania od prądu.
  2. Trafiłem na niegłupią radę podłączenia równolegle kondensatora i rezystora do pinu boot0. Wejście w tryb bootloadera: ładujemy kondensator - boot0 jako wyjście i ustawiamy 1, resetujemy mikrokontroler i jesteśmy w trybie bootloadera. W międzyczasie rezystor rozładuje kondensator i na boot0 nie będzie więcej 1. Mam problem z programowaniem z użyciem DFU USB. Gdy wgram program za pomocą programatora, a później zgram program używając DfuSeDemo plik ma 32K i wgrywa się do uC po USB. Gdy używam Sfu file managera tworzy się plik 7KB i wgrywanie programu nie działa (Transferred data size 0KB), są też problemy z opuszczeniem trybu DFU, czasem działa, większość czasu wyrzuca błędy. Swoją drogą Upload Action w DfuSeDemo zgrywa program na komputer.
  3. Uruchomienie timera generującego sygnał PWM. Krok 3. Brakuje nawiasu klamrowego dla "if (InterruptPrescaler == 40){". W przykładzie dla DMA jest ok. Przez brak nawiasu błędy dziwnie wyglądają, bo odnoszą się do inicjalizacji timera.
×
×
  • Utwórz nowe...