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...
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. 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: /** ****************************************...
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,...
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...
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...
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...
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)...
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...
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"...
Hej, Od kilku dni borykam się z dziwnym problemem. Napisałem sobie obsługę UART4 na mikrokontrolerze STM32F103RET6. Wycinek z kodu: https://obrazki.elektroda.pl/7181097200_... Napisałem sobie aplikację w C# (VS Community 2017) do odbioru ramek: (wycinek) https://obrazki.elektroda.pl/4415666900_... dostaję tylko jedną...
Mam wysyłanie przez USART z wykorzystaniem DMA, ale dzieje się dziwna rzecz DMA wysyła o 2 bajty mniej niż zadeklarowane tzn gdy mam DMA1_Channel4->CNDTR = 8; to USART wysyła 6 bajtów: [syntax=cpp] volatile uint8_t TxBuf[8]={1,2,3,4,5,6,7,8}; volatile uint8_t x=0; void SysTick_Handler(void)// co 1sek { x++; if(x==5) { DMA1_Channel4->CCR &=...
Kompilator na to 2 warningi ;) ..\src\main.c: In function 'i2c_write': ..\src\main.c:80:11: warning: variable 'dummy' set but not used [-Wunused-but-set-variable] ^ ..\src\main.c: In function 'i2c_read': ..\src\main.c:106:11: warning: variable 'dummy' set but not used [-Wunused-but-set-variable]...
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...
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...
Wymyśliłem sobie, że użyję ADC1 do wyzwolenia DMA. ADC nie będzie nic mierzyć, jednak wyzwoli DMA2, natomiast ADC mogę wyzwalać innym timmerem. Przesiedziałem z tym cały dzień i coś pomijam bo nie działa wyzwalanie ADC z timmera. Jeśli uruchomię ADC z własnym zegarem, transfer DMA działa po każdej konwersji. Jeśli uruchomię ADC wyzwalane z timmera,...
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...
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...
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...
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...
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...
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...
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...
Do kolejnej transmisji kanał DMA trzeba najpierw wyłaczyć. Samo załadowanie do rejestru i skasowanie flag ne wystarcza. Wywołuje tą funkcję, czyli wyłączam DMA, konfiguruję i włączam. Lecz to nic nie pomaga. [syntax=c]void UART_Receive_DMA(uint8_t *Buffer, int Length) { DMA1_Channel6->CCR = 0; DMA1_Channel6->CMAR = (uint32_t)Buffer; // Memory address...
Siedzę którąś godzinę i nie mogę pojąć co robię nie tak. Celem jest wysłanie tablicy (16 bajtów) poprzez SPI2 z użyciem DMA Niby wszystko działa ale kolejność danych jest przypadkowa, powtarzają się indeksy wysłanych danych. [syntax=c] DMA_InitTypeDef dma; DMA_DeInit(DMA1_Channel5); //Set DMA registers to default values DMA_StructInit(&dma); dma.DMA_PeripheralBaseAddr=...
Póki co na bibliotece ST: /* ------------ configure DMA for I2S -------------- */ DMA_DeInit(DMA1_Channel5); DMA_InitStruct.DMA_PeripheralBaseAddr = (uint32_t)&SPI2->DR; DMA_InitStruct.DMA_MemoryBaseAddr = (uint32_t)&AudioBuffer; DMA_InitStruct.DMA_DIR = DMA_DIR_PeripheralDST; DMA_InitStruct.DMA_BufferSize = 4608; DMA_InitStruct.DMA_PeripheralInc...
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...
Witam, próbuję uruchomić przetwornik ADC1 wraz z transferem przez DMA i przerwaniem od zakończenia transferu (transfer complete) Tak, żebym w przerwaniu mógł sobie obliczać wartość średnią z napięcia na wejściu. Samo ADC z DMA bez przerwania od DMA działa, ale gdy dorzucam linijkę [syntax=c]DMA_ITConfig(DMA2_Stream0, DMA_IT_TC, ENABLE);[/syntax] czyli,...
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;...
Witam mam problem z nadawaniem po USART1 z użyciem DMA. Gdy dłuość ciągu znaków nie przekracza 20 to wszystko pięknie działa. Natomiast gdy jest nie wiele większa 22, 23 ... to wyśle parę paczek o tej długości i przestaje. Dla jeszcze większej długości paczki nie wysyła wcale. Po podejrzeniu flag DMA ustawia się TCIF, czyli ok ale również dodatkowo...
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ść,...
Działająca wersja ale z F1 i bez bibliotek: No co Ty, na pewno to nie działa bo ma tylko 10 linijek a nie jakieś 50 jak z biblioteką <; DMA2_Channel5->CCR &= 0xffffffff-1; // DMA_CCR3_EN; // disable (trochę wstyd) Nie wiem czemu - przecież wyłączenie danego kanału DMA jest KONIECZNE przed jakąkolwiek jego re-konfiguracją. U siebie mam to...
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)...
Ź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...
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...
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]...
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...
Temat był już poruszany ale zmuszony jestem go odświeżyć ze względu na USART w trybie SmartCard. Kod inicjalizacji DMA Celem jest wysłanie 5 bajtów i złapanie w przerwaniu USART Transfer Complete momentu wysłania ostatniego piątego bajtu - już po wysłaniu go z wewnętrznego Shift Reg Uzyskuję to: http://obrazki.elektroda.pl/3790337700_1...
Witam, Napisałem program który wysyła kolejno bajty przez USART do drugiego urządzenia i jednocześnie odbiera bajty (taki powiedzmy full-duplex :)) . W zasadzie nic specjalnego program wygląda następująco: https://obrazki.elektroda.pl/5185361200_... . Czy przyczyną są drgania styków? Wcześniej tą komunikacje realizowałem za pomocą DMA...
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...
Dodano po 5 Te paski powoduje pamięć sdram. Gdy umieszczam sekcję frame w wewnętrznym ramie pasków nie ma:( Parametry ustawione zgodnie z dokumentacją, pamięć to W9825G6JH-6I. Próbowałem już modyfikować parametry na różne sposoby, jednak brak poprawy. Dla mniejszych ramek obrazu, np dla 176x144 pasków nie ma. Czym to może być spowodowane?
Problem rozwiązany. Okazuje się, że aby odebrać kolejny pakiet danych należy po odebraniu poprzedniego wywołać funkcję: USBD_CDC_ReceivePacket(hUsbDevice_0); Jeśli tego nie zrobimy, żadne dane nie będą już dochodzić. Trochę kuleje dokumentacja od ST. Ta funkcja np jest opisana w niej jako: Receives Transfer completed callback. Czyli na moje, że jest...
Obsługuję: [syntax=c] void DMA2_Stream1_IRQHandler(void) { /* Transfer Error Interrupt management */ if (DMA2->LISR & DMA_LISR_TEIF1) { /* Disable the transfer error interrupt */ DMA2_Stream1->CR &= ~DMA_SxCR_TEIE; /* Clear the transfer error flag */ DMA2->LIFCR = DMA_LIFCR_CTEIF1; } /* FIFO Error Interrupt management */ if (DMA2->LISR & DMA_LISR_FEIF1)...
Mam mały problem z DMA podczas pracy z DCMI. nowydamian-a . Zwiększa wskaźnik na bufor i ponownie włącza DMA. Różnica jest w tym że resetowanie wskaźnika mam w przerwaniu od DCMI. Dzięki temu każda kolejna ramka obrazu powinna zaczynać się od pozycji zerowej bufora (obraz zawsze powinien być w tym samym miejscu, nawet jak po drodze któraś rama straci...
Dzień dobry, Od dłuższego czasu staram się zrobić działające pass-through dla audio - pobranie dźwięku z wejściowego mini-jacka i przeniesienie go na wyjście mini-jack. Na płytce jest kodek WM8994, którego wyjścią są przyłączone do SAI- serial audio interface, mini-jacki z kolei są podłączone pod kodek. Korzystałem z biblioteki dołączonej do płytki...
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...
Hmm moglibyście spojrzeć. Napisałem coś takiego, jednak na LCD są tylko jakiej pasy. Obrazu brak. Stworzyłem bufor 2kB, i dwa wskaźniki na niego (na jego początek i środek). DMA ustawione na circular i zapisuje ciągle ten bufor. Dodatkowo zgłasza przerwania po przesłaniu połowy bufora i całego. I na podstawie tych przerwań próbuję w pętli głównej na...
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...
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...
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...
Od kilku dni walczę z niby banalnym tematem. Przewałkowałem krok po kroku dokumentację, noty aplikacyjne i dostępne przykłady ale nadal nie mogę ruszyć. Chcę przesłać przez SPI5 wykorzystując DMA2 (strumienie: 3 do odczytu i 4 do zapisu na kanale 2) dane do/z układu ADE7953 . Sama transmisja SPI robiona programowo (sprawdzanie flag TXE i RXNE) działa...
To jest z przykładu dołączonego do noty: [syntax=c] #define OAR1_ADD0_Set ((uint16_t)0x0001) Status I2C_Master_BufferWrite(I2C_TypeDef* I2Cx, uint8_t* pBuffer, uint32_t NumByteToWrite, I2C_ProgrammingModel Mode, uint8_t SlaveAddress ) { ... else if (Mode == Polling) /* I2Cx Master Transmission using Polling */ { Timeout = 0xFFFF; I2Cx->CR1 |= CR1_START_Set;...
Witam chciałem wykorzystać DMA do odczytywania wartości z akcelerometru poprzez I2C. Na stronie ST udostępniono przykładowy kod wykorzystujący DMA. Poniżej udostępniam przykład funkcji wysyłania danych. No i niby wszystko rozumiem, oprócz jednej podstawowej rzeczy. W którym miejscu jest to niby szybsze niż zwykły transfer poprzez i2c, tzn. wysyłanie,...
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->...
Patrzyłem zbyt wąsko na problem - znowu (!) coś dzieje się z transmisją przez USART :/ Jeśli w pętli while(1) nie używam "żądania" wysłania na terminal "w" w celu przesłania wartości mierzonej przez ADC - program działa. Wraz z dopisaniem linijki odpowiedzialnej za sprawdzanie co pojawia się w terminalu, program działa tylko w przypadku (A) ! (czyli...
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...
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...
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...
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...
Dzięki za odpowiedzi! gaskoin wydaje mi się, że sprawdzanie bufora w przerwaniu po odebraniu znaku nie będzie zbyt optymalne bo komunikacja wygląda tak: Zapytanie: AT\r\n Odpowiedź: AT\r\n// Z włączonym echem OK\r\n Więc w trakcie odbierania znak \n pojawia się klika razy przez co będę blokował przerwanie podczas odbierania danych. Teoretycznie echo...
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...
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...
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...
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ą...
Procesor niestety dostałem w "spadku" ja zastosował bym STM32F4 i też kombinował z FPGA. Niestety z uwagi na czas jaki został do końca pozostaje tylko PIC32MZ... Zdroworozsądkowo to z uwagi na DMA które może teoretycznie przesyłać z zegarem SYSCLK. Właściwie to udało mi się uzyskać 50MHz w układzie PMP -> DMA -> MEM i to jest wystarczające dla tego...
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_...
https://obrazki.elektroda.pl/6225803800_... Witajcie moi drodzy Ostatnio zająłem się nieco głębiej kwestią obsługi ENC28J60 w Mikro C na PIC32MX w połączeniu z nową biblioteką Network Ethernet Library z Libstocka . Jest to biblioteka dostępna za darmo i wspiera różne mikrokontrolery, nie tylko PIC. Prędko zorientowałem się jednak,...
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...
Witam, Próbuję wykorzystać funkcjonalność DMA burst aby pobierać wartości rejestrów ARR, RCR i CCR1 przy każdym update event timera 1 z tablicy bez zajmowania procesora. Program działa prawidłowo po wystąpieniu pierwszego przerwania UEV od TIM1, lecz kolejny transfer danych wprowadza inne dane do tych rejestrów niż zamierzone (znajdujące się w tablicy)....
Witam. Oto mój kod: 1008409 Jeżeli jednak i2c zostanie zresetowane po odbioru każdego bajtu to wszystko działa poprawnie: 1008410 Po przygodach z STM32F4 nie sądzę aby poprawnym rozwiązaniem był reset po każdorazowym odczycie. W refference manualu nie bardzo też mogę znaleźć odpowiedź na moje pytanie. Czy ktoś jest mnie w stanie naprowadzić dlaczego...
Konfiguracja DMA: DMA1_Channel7_IRQHandler a nie DMA1_Channel4_IRQHandler ? Jak nalezy interpretowac ten błąd z FIFO? http://obrazki.elektroda.pl/3247344700_1... Gdzie robię błąd?
Staram się połączyć STM32F0 z kartą SD (w sumie to mikroSDHC), ale niestety marne są tego skutki. Próbowałem już kilka kodów znalezionych w internecie ale w końcu zatrzymałem się na znalezionym na jakiejś niemieckiej stronie.. Skompilowałem, wyskoczyło mi kilka błędów związanych z nazewnictwem i deklaracjami funkcji to je poprawiłem. Kod teraz wygląda...
Witam Borykam w sumie z dwoma problemami 1.Wysyłając dane przez usb w ostatniej fazie, żeby dane wysłać w rejestrze DOEPCTL ustawiamy bit DOEPCTL 31- EPENA (The application sets this bit to start transmitting data on an endpoint, The core clears this bit before setting any of the following interrupts on this endpoint: – SETUP phase done –...
Witam poniżej wrzucam kod, który napisałem do obsługi SPI2 z DMA. Niestety kod zatrzymuje się na pętli oczekującej na włączenia DMA1_Stream4: Dodano po 2 Dodam, że DMA1_Stream3 dla odbioru włącza się bez problemu.
Witam Napotkałem się z problemem jak w temacie a dokładniej. Jeżeli chce uruchomić program przez przycisk debug albo wgrać go przyciskiem download w keil,u to program startuje prawidłowo. W momencie kiedy wyłączę i włączę ponownie zasilanie wszystko startuje prawidłowo poza uart em. tzn przerwanie do niego nie jest wywoływane. Testowałem na kilku egzemplarzach...
complete print please complete system complete internet repair
sączek drukarka osłona obiektywu kontrolka silnik renault spaliny
multimetr aneng ekspres nespresso
Wskaźnik paliwa rośnie po wyłączeniu zapłonu - przyczyny Jak znaleźć TVP2 w Telewizji na Kartę (TNK)