Skocz do zawartości

simoon87

Users
  • Zawartość

    74
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    2

simoon87 zajął 1. miejsce w rankingu.
Data osiągnięcia: 4 stycznia 2013.

Treści użytkownika simoon87 zdobyły tego dnia najwięcej polubień!

Reputacja

9 Neutralna

O simoon87

  • Ranga
    4/10
  • Urodziny 15.12.1987

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Bydgoszcz
  • Zawód
    Integrator Systemów Elektronicznych
  1. Dzięki Tobie rozwikłałem zagadkę! Wielkie dzięki. Zakładałem projekt tak samo jak w kursie z jedną różnicą.... W kursie wybierana jest płytka Nuceo w oknie MCU Configuration: Natomiast ja dodałem 2 swoje płytki: ZL27arm, oraz płytkę swojego urządzenia. Gdy wybiore jedną z nich do Startup ładowany jest plik: startup_stm32.s. Jeśli wybiorę Nuceo faktycznie jest plik: startup_stm32f10x_ms.S Po ręcznej podmianie plików projekt Żyje!!! Jeszcze raz wielkie dzięki
  2. Dzisiaj przeinstalowałem OpenSTM32, założyłem nowy projekt, przekopiowałem wszystkie swoje pliki *.c *.h skompilowałem i dalej nie działa. Nie mam już pomysłów w załączniku przesyłam wyeksportowany projekt. W związku z tym mam prośbę do Ciebie Elvis, jakbyś mógł rzucić na niego okiem może coś zauważysz.... sp_open.zip
  3. Tak do końca nie mogę zrobić Kopiuj/Wklej wiec założyłem nowy projekt pozamieniałem na USART1 oraz odpowiednie GPIO (nie robię tego na Nuceo). Cały czas nie działa. Jutro przeinstaluje całe to OpenSTM32 bo już nie mam innych pomysłów.
  4. Dodanie USART_ClearITPendingBit(USART1, USART_IT_TXE); nic nie zmienia. W dalszym ciągu procesor w ogóle nie wchodzi do USART1_IRQHandler() Pisząc ten kod posiłkowałem się Książką STM32 Aplikacje i ćwiczenia w języku C. Autor w żadnym z kodów nie używał funkcji USART_ClearITPendingBit. Mam prośbę mógłbyś udostępnić Twój projekt z OpenSTM32 skoro u Ciebie działa chciałbym zaimportować go do siebie i porównać co robię nie tak.
  5. Nie, to jest tak, że działa tylko funkcja USART_SendData() która jest standardowo w pliku stm32f10x_usart.h ale ona wysyła bajt bez obsługi przerwania. Nie działa ani USART_SendChar ani USART_Puts które ładują odpowiednio znak lub łańcuch do bufora cyklicznego a następnie wywołują przerwanie. To, że program w ogóle nie wchodzi do przerwania zdiagnozowałem w banalny sposób, na sam początku funkcji obsługi przerwania dodałem zasiedzenie diody. Niestety dioda się nie świeci. Dodatkowo w Debugu widać ze program wykonuje się OK do momentu w którym powinien wejść do przerwania i nagle umiera. Kod
  6. Nie, korzystają z tej samej wersji (StdPeriph_Lib_V3.5.0). Sprawdzałem Poza tym System Workbench for STM32 samo pobiera sobie biblioteki StdPeriph w trakcie tworzenia projektu wiec nie ma mowy o pomyłce prędzej mógłbym się pomylić dodając ręcznie biblioteki do uVision. Treker, używałeś w tym IDE Usartu z obsługą przerwań? Chciałbym ustalić czy jest to problem u mnie czy coś innego?
  7. Źródło problemu częściowo zostało znalezione. Jest to wina IDE używałem System Workbench for STM32 polecanego w kursie i ku mojemu zaskoczeniu kod po przekopiowaniu do Keil uVision5 działa bez zarzutu. W System Workbench for STM32 USART działał w moim kodzie tylko gdy używam go bez obsługi przerwań. Czy ktoś Was spotkał się z takim problemem? Nie ukrywam, że bardziej przyzwyczajony jestem do Eclipse i brakuje mi kilku udogodnień w Keilu.
  8. TAK void RCC_Config(void) { ErrorStatus HSEStartUpStatus; //zmienna opisujaca rezultat uruchomienia HSE RCC_DeInit(); //Reset ustawien RCC RCC_HSEConfig(RCC_HSE_ON); //Wlaczenie HSE HSEStartUpStatus = RCC_WaitForHSEStartUp(); //Odczekaj az HSE bedzie gotowy if(HSEStartUpStatus == SUCCESS) { FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);// FLASH_SetLatency(FLASH_Latency_2); //ustaw zwloke dla pamieci Flash; zaleznie od taktowania rdzenia
  9. Mam pytanie z innej beczki próbuje skonfigurować USART w STM32F103RTB6 z obsługą przerwań oraz buforem cyklicznym. USART podłączony jest do SN75176 ( transceiver RS485) schemat poniżej: Mój problem jest taki że procesor w ogóle nie wchodzi do przerwania USART1_IRQHandler oraz wygląda jakby się zawiesił. Dodatkowo jeśli wysyłam w taki sposób USART_SendData(USART1, 'X'); zamiast USART_Puts( USART1, "485 test!\n" ); to transmisja działa. Wychodzi więc, że błąd jest gdzieś w funkcji SendChar lub w konfiguracji ale niestety nie potrafię go znaleźć. Chciałbym prosić bardziej doświadczonych for
  10. Z podstawi nie zrobisz programatrora z jednego prostego powodu. Piny programujące z dolnego gniazda nie są podłączone nigdzie indziej poza gniazdem opisanym jako FT232 i to cały czaś próbuje Tobie przekazać. at2313 możesz zaprogramować tylko przez avrdude i tylko używajac dolnego gniazda i przewodów a nie przez bootloader. napisałem wcześniej wyraźnie: (bootlader dostarczony przez Andtech obsługuje tylko atmege16 i 32 po uprzednim wgranu odpowiedniecgo wsadu bootloadera który dołączyłem do paczki zip) Jeśli wgrasz bootloader od andtech do at2313 to nie zadziała.
  11. Dobra od początku... nie zrozumieliśmy się a w zasadzie Ty mnie nie zrozumiałeś. Programator i bootloader to dwie różne rzeczy i obie funkcje są realizowane przez ft232rl. Programator zawarty w zestawie EvB obsługiwany jest przez avrdude i to jest fakt! Połączenie ktore jest przedstawione na obrazku było omawiane na forum producenta w zwiazku z pytaniem jak wgrać bootloader do nowej atmegi (innej niż dostarczona przez Andtech) bez zewnetrznego programatora. Reasumując jeśli chcesz programować procesor w zestawie używasz Bootloadera (and-loader) i nie trzeba nic łączyć przewodami. Gdyż txd
  12. Z Twojego ostaniego postu wniosku że masz płytke firmy andtech. Jeśli tak to nie producent milczy tylko kiepsko szukasz, na stronie w instruncji jak i na forum jest taki oto obrazek pokazujący jak podłączyć inny procesor (to złącza na dole to wyjscie z układu ft232rl na ktorym jest zrobiony ten mega prosty programator, ktory obsługiwany jest przez avrdude. And-Load to bootloader który ładuje program przez TXD i RXD czyli uart)
  13. Proponuję przejrzeć dokładnie dokumentacje od procesora tzn. UM10398 (UserManual) oraz LPC11xx Datasheet. A dowiesz się z nich że na PIO0_2 nie da się wygenerować sprzętowego PWM gdyż pin ten nie posiada takiej funkcji. Masz książkę i coś wydaje mi się że nawet nie przeczytałeś całego rozdziału o licznikach w którym zawarta jest informacja podobnie jak w Manualu że PWM można generować z nóżek oznaczonych jako MATx LPC_IOCON->PIO0_9 = 0x02; LPC_IOCON->SWCLK_PIO0_10 = 0x03; Tab 79 i 80. strona 78 UserManual (UM10398) - jest to wybór funkcji pinu LPC_TMR16B0->PWMC = 0x06;
  14. if (PINC && 0x01) w tego typu miejscach powinno być if (PINC & 0x01)
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.