Witam. Podłączyłem mikrokontroler STM32F429 do układu FT311D za pośrednictwem SPI, aby komunikować się z androidem. Dane wysyłam za pomocą instrukcji: http://obrazki.elektroda.pl/1593355700_1... I nie do końca wiem, co znaczy, że układ może wysłać (i odebrać!) maksymalnie 256 bajtów per transfer. Przecież w SPI pojedynczy transfer (przesłanie...
Niestety nadal nie pokrywają mi się wyniki. Oczywiście brałem wartość począrkową jako 0xFFFF FFFF. A jeżeli chodzi jeszcze o ustawianie DMA + CRC. W takiej knfiguracji ustawiam transmisję memory to memory, gdzie adresem docelowym jest CRC->DR. Jako Peripheral (DMA2_Stream4->PAR) jest tutaj adres w pamięci gdzie jest zapisana tablica z danymi. Inkrementowany...
BlueDraco, dzięki za odpowiedź Rozumiem, że Twoje pytanie jest pytaniem retorycznym? Jasne - wszystkie linijki: USART_ClearIT_pendingBit() są bezsensowne w przerwaniach. Czemu różnicuję? Myślałem, szczerze to próbowałem bardzo dużo, żeby doprowadzić mój projekt do używalności - nawet próbowałem zmieniać priorytety przerwań ustawiając dla sensorów wyższe...
https://obrazki.elektroda.pl/4768835200_... Introduction to the course In order to understand what kind of device we will be designing today, let's first briefly recall what soldering stations generally are, and how they differ from each other. The entire lower price segment of such equipment, as you might guess, is captured by Chinese...
Tak, tylko ta linia nie wnosi nic do problemu. Wróciłem do starej posklejanej wersji: Dodano po 5 Nerwy mnie już biorą... powyższy kod... po kolejnych próbach grzmoci się totalnie - inaczej tego ując nie moge (przepraszam). Zawiesza się od razu po załączeniu diody LED, USB wysiada przy BR = 9600 przy okazji sypiąc mi totalnie terminal...
Zamień te cyferki na odpowiednie makra z nagłówków, bo nie sądzę aby komukolwiek chciało się bawić w sprawdzanie który bit od czego jest. Kanały DMA trzeba włączyć bitem EN, a jak licznik zjedzie do zera, to one się wyłączają. Poniżej przykładowy konfig dla SPI i działania z przerwaniami: [syntax=C]//SPI2_RX - DMA1_Channel4 DMA1_Channel4->CCR = 0;...
Zmieniłem trochę w projekcie. Zastosowałem najnowszą wersję FatFS. Plik z konfiguracją funkcji zadeklarowanych diskio.h pobrałem ze [url=http://www.siwawi.arubi.uni-kl.de/a... strony i przerobiłem go by pasował do STM32L. Po testach objawy wyglądają tak: Karty 512MB i 16GB: porgram mniej...
Nie pamiętam już z czego dokładnie to wynika, ale prawdopodobnie właśnie ze zdefiniowanych pól w sterownikach od windows. Podejrzewam, że modyfikacja plików sterowników nie będzie aż tak trudna, tylko jest wada - potem ten sterownik trzeba dostarczać klientowi. Najwięcej informacji znajdziesz w specyfikacji USB (mało czytelne) jak również (ze wskazówkami...
Witam wszystkich. Przenosze kod z STM32 L 053 na STM32 F 030 Ruszylo mi prawie wszystko czyli: RCC GPIO SPI Pracuje na kodzie dostarczonym przez ST pod pewien moduł radiowy. Kod jest oparty o HAL generowany z Cube. Mam problem z DMA. Problem ten jest wynikiem nie wykonywania się jednej linijki kodu. Zamiast wskaznika (adresu funkcji) wpisywane jest...
Przykład dla DMA [syntax=c]void Init_DMA_TFT(uint16_t nofData) { // DMA2 Init Stream 0 from SRAM to FSMC DMA2_Stream0->CR &= ~(DMA_SxCR_EN); while ((DMA2_Stream0->CR & DMA_SxCR_EN));// wait for disable and clear all flags DMA2->LIFCR |= DMA_LIFCR_CTCIF0 | DMA_LIFCR_CHTIF0 | DMA_LIFCR_CTEIF0 | DMA_LIFCR_CDMEIF0 | DMA_LIFCR_CFEIF0; //0b----|...
W takim ustawieniu zapodaj 3.3V na NSS, lub ustaw SSM oraz SSI na 1 i sprawdź czy zadziała. Jeśli nie, ustaw rejestry według poniższego przepisu. Configuring the SPI in master mode In the master configuration, the serial clock is generated on the SCK pin. Procedure 1. Select the BR[2:0] bits to define the serial clock baud rate (see...
Witam, Mam następujący problem koncepcyjny: mam mikrokontroler STM32F411 do którego po SPI jest podpięty m.in pomiarowy interfejs analogowy. Co 125us (8kHz) interfejs generuje przerwanie - należy wtedy odczytać z interfejsu 27 bajtów danych. Urządzenie nastawione jest na niski pobór energii (zasilanie bateryjne, procesor taktowany dość nisko - 24MHz)...
Tak sie zastanowiłem o czym piszesz, czy masz na myśli to że w tych wymienionych przez ciebie układach np dostęp do portów i ich konfiguracja jest w każdym typie taka sama? Czy to o to chodzi że np w f103 są inne rejestry niż np f411 do konfiguracji portów? Ja się np zraziłem do G0 czytając o czymś takim jak DMAMUX. Opis jest tak pokrętny że zupełnie...
Witajcie, Wysyłam sobie w moim małym projekcie, 4*16 bitów przez SPI, w użyciem DMA. Funkcja inicjująca wysyłanie wygląda tak [syntax=c] void display_set_raster_line(uint16_t * raster_line) { // wait for transfer complete if (SPI_FIRST_TRANSFER_DONE) { while( DMA1->ISR & DMA1_FLAG_TC3 == RESET) { } } // copy new raster to current raster line...
Poradnik jest bardzo fajny i pomocny. Wielkie dzięki za opracowanie. A piszę, bo chciałem zgłosić, jak mi się wydaje, subtelny błąd. Mianowicie w części o ADC, zadanie nr 13.3 wiersz 22 - pętla oczekująca na zakończenie konwersji. Wcześniej piszesz, że po zakończeniu konwersji wszystkich kanałów regularnych ustawiana jest flaga EOC. Ale jednocześnie,...
Przesyłam sobie dane przez RS485. Na linii są dwa urządzenia i oba mają mieć możliwość nadawania. W związku z tym, gdy jedno skończy nadawać, powinno wyłączyć układ sterujący linią. Niestety jest problem przy transmisji USARTem przez DMA. Przerwanie transfer complete generowane jest wtedy, gdy DMA skończy swoją pracę, natomiast jeszcze nie wszystko...
Czy ktoś zmusza Cię bronią do używania tej biblioteki? Przecież żeby wystartować transfer trzeba (z tego co pamiętam) wykonać JEDEN zapis do JEDNEGO rejestru, a ty chcesz wywoływać 3 funkcje... To już szybciej będzie te dane ręcznie kopiować... Tutaj masz np przykładową PEŁNĄ konfigurację dwóch kanałów DMA do SPI (brak oczywiście konfiguracji SPI, czy...
Panowie w końcu znalazłem przyczynę dlaczego przerwanie od DMA transfer complete działało w Keilu, a nie działało mi w STM32CubeIDE. Problem okazał się banalny i tkwił w innej nazwie funkcji przerwania od DMA dla kanałów 2 3 w pliku startup.s . W Keilu w pliku startup.s nazwa ta była "DMA1_Channel2_3_IRQHandler", a w pliku startup.s dla Cube była "DMA1_CH2_3_IRQHandler"...
A to trzeba korzystać z przerwania DMA? Chyba nie po to ono jest. Jest też inne przerwanie temu służące. SPI w F103 nie ma możliwości aby generować przerwanie po zakończeniu transmisji; jak DMA bitem TC. Chcesz reagować na każdy TXE? Chyba jednak nie. Do czego w takim razie jest przerwanie Transfer Complete od DMA, jeżeli nie do podjęcia akcji po zakończeniu...
Usiłuje uruchomi DMA tak aby zgłaszało mi przerwanie (na początku może by po zakończeniu transferu) Timer wyzwalający mam już skonfigurowany [syntax=c] TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; /* USER CODE BEGIN TIM1_Init 1 */ /* USER CODE END TIM1_Init 1 */ htim1.Instance = TIM1; htim1.Init.Prescaler...
Witam mam pytanie czy tryb DMA memory-to-memory może posłużyć do kopiowania jednego bloku pamięci do drugiego w obrębie pamięci RAM? Taki zamiennik funkcji memcpy, wydawało mi się że tak i zrobiłem taką funkcję ale coś nie nie działa. [syntax=c]void Mem2MemDMA(uint16_t *src_buf, uint16_t *dst_buf){ //DMA Configuration uint32_t CCR_reg = 0; RCC->AHBENR...
Źle rozumiesz prace tego pinu! Nie ma takiego SPI gdzie CSy będą same chodzić w górę i w dół w zależności od tego czy nadajesz czy nie... CSem musisz machać sam!! . Przeciez piszac kod dokladnie wiesz, kiedy rozpoczynasz transakcje po SPI, więc cięzko tam jedna linijka kodu tego CSa ręcznie ustawić do masy?... Ustaw ten pin jako standardowe wyjscie...
jeszcze nie zapomnij o samym USARC-ie, który może byc w stanie błedu - bo obsluga DMA była właczona, ale DMA nić nie zabierało. A jeśli UART jest w stanie błędu to jak go usunąć? Zmodyfikowałem funkcję do takiej postaci jak poniżej. Czyli wyłączałem również UART i konfigurowałem ponownie, ale nic to nie pomogło. Dodano po 1 W HALu jest taka funkcja...
Ja na pewno nie przerobię tego przykładu na wersję bez bibliotek, zrobi to ktoś z Was i udostępni??? Bardzo wątpię. Żadna filozofia. Tu masz obsługę dla serii F1 (nie jest to całość ale prawie wszystko) DAC+TIM+DMA, jakieś drobiazgi mogły się zmienić w F4. Jeśli tamten projekt jest na I2S to sprawa jest jeszcze prostsza. void AudioPlay(uint32_t size)...
Nie wiem jak z ta zakrecona biblioteka od ST :) moj dzialajacy kod na STM32F407 z jednego projektu (z tym ze wyzwalanie ADC jest z Timera). Przerwanie DMA wyzwalane po zebraniu 8 probek... Twojego kodu nie analizuje bo ta biblioteka dziala czasami jak chce, z tego co pamietam na F4 chyba tez z nia mialem problem przy ADC i DMA... [syntax=cpp] volatile...
Gorzej, jeśli algorytm tego nie gwarantuje - a ja właśnie takie urządzenia ostatnio głównie robię. A jaka jest różnica, czy nie nadąży na przerwaniach, czy przez DMA? ;] Jak nie nadąży, i tak któreś dane musisz zadeptać, albo przyblokować nadawce RTSem. A to może robić supervisor, którego częstotliwość odpalania jest już tylko zależna od głębokości...
Poniedziałkowe dziędobry. Teraz ADC + DMA. Może się komuś przyda. Na razie bez przerwań ale działa (dzięki komu to chyba wiadomo, a gdyby nie, to dzięki Freddie Chopin i BlueDraco, kolejność przypadkowa (kłopot z odmianą w Języku Polskim) ). [syntax=c] /***************************************... * Funkcja inicjalizacji ADC tak, ze...
Wygląda jakby przerwanie nie kasowało flagi ale żadna flaga nie jest ustawiona. Żadna flaga nie jest ustawiona? TXE na 100% jest ustawione (bo przecież nic nie wysyłasz), TC też by było ustawione na stałe tylko czyścisz ją ręcznie. Po skończonym transferze przerwania od tych źródeł należy wyłączyć. Żadne magiczne funkcje typu HAL_NVIC_ClearPendingIRQ()...
Eee.. zmieniłeś w międzyczasie OSa? Wygląda trochę jakbyś strzelał na oślep, coś nie działa, to sruu wszystko, kopiuj/wklej inny przykład itp. Trochę jakby bez zastanowienia co konkretnie może nie działać... Dodano po 1 Kurka, to odpal sobie DMA, odblokuj przerwanie od Transfer Complete i jesteś pewny, że dane odebrano ;) Z przerwania wepchnij wynik...
W sumie to mam pytanie czy dobrze rozumiem jak to ma działać. Tak skonfigurowany DMA wykonuje transfer raz, w momencie ustawienia bitu ENABLE. Kod z moimi komentarzami (wypisane z DSa). [syntax=c] void DMA_Conf(void) { RCC->AHBENR = RCC_AHBENR_DMA1EN; /* Procedura konfiguracji kanałów DMA 1. Ustawić adres rejestru peryferiów w rejestrze DMA_CPARx Dane...
To wiem. Z rozmiaru programu to wynika. Ale chciałbym się też w jakiś sposób zabezpieczyć na przyszłość. Jeśli będę rozbudowywał bootloader to dobrze mieć taki mechanizm. Np niech program się nie skompiluje Dodano po 4 Zmieniłem rozmiar tutaj. Do testów na 512B. Teraz się nie kompiluje. Jak jest 1kB to się jeszcze kompiluje więc niby działa. http://obrazki.elektroda.pl/3675168200_1...
Wygląda po prostu jakby ADC nie było w ogóle zainicjowane. Polling zacina kompletnie procek, It i DMA nie są wyzwalane. TempSensor.cpp [syntax=c]/* * TempSensor.cpp * * Created on: 13 gru 2015 * Author: KryQ */ extern "C" { #include "stm32f4xx_hal.h" } #include "TempSensor.h" #include "ErrorHandler.h" #include "MathLib.h" TempSensor::TempSensor(uint8_t...
Zrobiłem jak napisałeś, żadnego przerwania od błędu nie wyrzuca. Jedynie Transfer complete i Half Transfer complete. DMA ciągle przesyła, nie zatrzymuje się:/
Witam, mam problem z odbieraniem danych przez i2c z użyciem mikrokontrolera stm32f103. Sytuacja wygląda tak, że potrafię przesyłać dane po i2c, (wysyłam adres, czujnik odpowiada, wysyłam mu komendę wykonania pomiaru, wiem że go wykonuję ponieważ wtedy "mruga" diodą), niestety mam problem z odbieraniem danych. Testowałem już wiele funkcji z sieci, ale...
Jeżeli nie potrzebujesz do tego strobów na dodatkowych liniach, np. !WR, to w czym problem? DMA1_Stream1 = Channel_7, co daje request z TIM6. Skonfiguruj resztę DMA: Half-word, DMA jako Flow Controler, Burst: Single i adresy. Jeżeli zarezerwujesz sobie odpowiedni bufor, to przerwanie od Half Transfer i Transfer Complete załatwiają resztę. Do wyboru...
Problem rozwiązany prz sprawdzaniu flagi TXE też brakowało średnika ;) działająca inicjalizacja i odczytywanie rejestru definicje #define LSI302DL GPIO_BSRR_BS_3 #define LSI302DL_SPI1_DISABLE GPIOE-> BSRRL |= (LSI302DL) //Set #define LSI302DL_SPI1_ENABLEGPIOE-> BSRRH |= (LSI302DL) //Reset #define LSI302DL_I2C1_ENABLE GPIOE->...
Co może być przyczyną tego, że zamiast wysyłanego "hello" odbieram w termianlu "hhhhheeeeeellllllllllllllllllllloooooo"... Dodam, że przy wyłączonym DMA nic takiego nie ma miejsca. http://obrazki.elektroda.pl/2733352900_1...
Witam, chciałbym przesyłać dane przez USART za pomocą DMA (STM32F4). DMA jest aktywowane w przerwaniu od TIM2 w odstępach co 100 ms. Program wykonuje się, natomiast dane nie są przesyłane. Wiem, że na pewno przerwanie od TIM2 działa poprawnie. Jeśli ktoś wie gdzie może być błąd/braki w konfiguracji proszę o odpowiedź. Z góry dzięki. Poniżej kod: [syntax=c]...
Witam. Do Nucleo STM32F446RE podłączam via DCMI kamerkę OV7670. Za pomocą DMA wrzucam z DCMI do RAM uC, do tablicy obraz https://obrazki.elektroda.pl/7486996200_... . Wygląda nieźle, z tym że nie wiem czy to nakładanie się pasków jest ok. Natomiast gdy włączam tryb color bar w rejestrze COM7 https://obrazki.elektroda.pl/8526039400_...
Witam. Po ogarnięciu portów i/o chciałem przejść do konwersji ADC. Początkowo zakładam, że nie korzystam z przerwań, nie korzystam z DMA. Screeny z Cube: http://obrazki.elektroda.pl/6506556500_1... http://obrazki.elektroda.pl/5974943000_1... http://obrazki.elektroda.pl/2033015600_1... Plik main: /** ****************************************...
Jak w temacie załączam kod coś pominąłem albo w tej konfiguracji to nie może działać, nie wiem czy ktoś przerabiał ten temat? przebieg pwm pojawia sie na wyjsciu gpiob pin 15 ale nie kopiuje tak jakby z memory do gpiob. [syntax=c] static void PortInit(void){ eb_init(); GPIO_InitTypeDef GPIO_InitStructure; //seperate port for enable pin and st pin RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP...
Chciałbym użyć do transferu SPI kontroler DMA bo troszkę danych jest do wysłania. Gdy wysyłam normalnie to działa elegancko: [syntax=c]SPI3->DR = dane[i];[/syntax] Ale gdy próbuję wysłać przez DMA to już tak łatwo nie idzie, wręcz wcale nie idzie: [syntax=c]void dma_init( void ) { RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN; DMA1_Stream7->CR |= DMA_SxCR_PL_0...
Dzięki za odpowiedź. Wrzucam kody do inicjacji SPI oraz komunikacji z XPT. Odnośnie linii PENIRQ. Przerwanie mam skonfigurowane dobrze, bo gdy zetknę pin do masy to wyzwalane jest przerwanie. Próbowałem także w pętli czekać na dopóki PENIRQ nie będzie w stanie niskim, niestety w ogóle z tej pętli nie wychodził. Jedna rzecz sie zgadza z notą katalogową...
Szanowni Forumowicze, Mam problem z Virtual Port COM. Używam procesora STM32F103VBT6. Na nim chcę zrobić taki sterownik uniwersalny kilka wejść wyjść oraz USB do wysyłania komend i odczytu stanu wejść i wyjść. Chcę zrobić to tak że np mam wyjście powiedzmy PA0 i jest tam podłączona dioda i po wysłaniu komendy "LEDON" włączy się. Niestety mając do dyspozycji...
Aby działały funkcje 'Alpha Blending' i 'Color Keying' musisz dopisać odpowiednie funkcje do sterownika LCD_X_DisplayDriver. Ja zrobiłem tak: [syntax=c]#include "stm32f4xx.h" #include "boot.h" #include "GUI.h" #include "GUI_Private.h" #include "GUIDRV_Lin.h" // // Buffers / VScreens // #define NUM_BUFFERS 1 // Number of multiple buffers to be used #define...
Cytat: These procedures must be followed to make sure: • The ACK bit is set low on time before the end of the last data reception • The STOP bit is set high after the last data reception without reception of supplementary data. W sumie to jest jak widzisz na powyższym . ACK low przed końcem ostatniej transmisji STOP high po zakończeniu...
Przecież w kodzie powyżej nie ma żadnego zapisu do Flash... Jest w EE_Init(). Może źle się wypowiedziałem. EE_Init sprawdza czy wymagany na EEPROM obszar pamięci jest "sformatowany" jak nie to go "formatuje", czyli zapisuje na początku dwóch bloków ich jakby identyfikatory. I właśnie ich nie można zapisać. Wygląda to tak: pokaż, w jaki sposób wywołujesz...
Popatrz na mój kod - kalibracja odbywa się prz ADON = 0, zgodnie z tym, co napisano w manualu. Jak Ty go czytasz, że kiedy piszą, że ADC ma być wyłączony, to Tobie wychodzi, że trzeba go włączyć? Masz rację, ale dla F05X. Specjalnie ściągnąłem manuala i jest napisane tam wyraźnie: The calibration is initiated by software by setting bit ADCAL=1. [b]Calibration...
Mam STM32L152 z DAC, który odtwarza plik wave. Korzystam z DMA i Timera do wyzwalania. Wszystko działa, ale chciałbym uzyskać możliwość softwarowej zmiany głośności. Czy DAC w STM32 ma możliwość dodania offsetu do sygnału wejściowego? Przeczytałem dokumentację, ale się w tym gubię. Jest możliwość włączenia bufora wyjściowego, po czym zwiększa się głośność,...
Witam, Mam problem z uruchomieniem prostego kodu "echo" z wykorzystaniem bibliotek STMCube oraz interfejsu CDC. W standardowym pakiecie bibliotek od ST nie ma przykładu virtual com port na płytkę STM32F407 discovery. Skorzystałem więc z generatora kodu CodeMX. Wygenerowany kod przykładu USB Device CDC działa tylko po części. Załączam treść pliku c gdzie...
complete print complete internet repair please complete system
komutatorowy silnik pralka modem spalone blokować tylny hamulce
amica pa5560a411 instrukcja amica pa5560a411 instrukcja
Bezpiecznik oświetlenia podsufitki VW Fox - lokalizacja i wymiana Renault Trafic: Wydmuchiwanie powietrza z filtra na wolnych obrotach