1. Jeśli kierunek ma wartość 0 to to przerwanie nigdy nie jest wykonane. 2. Używanie biblioteki SPL dla potencjalnie szybkiego sygnału mija się z celem. 3. Jeszcze bardziej z celem mija się używanie Exti dla enkodera skoro STM32 ma timery z wejściami enkoderowymi.
Pierwsza sprawa to nie widzę podłączenia ADC1 do APB2. Druga sprawa: DMA_InitStruct.DMA_MemoryBaseAddr = (uint32_t)&ADCVal; Czy ADCVal nie jest tablicą?
Nie możesz jeden po drugim, bez żadnego czekania odczytywać czy wysyłać kolejnych bajtów przez I2C. Pomiędzy każdym wysłaniem lub odebraniem muszą być sprawdzane stosowne flagi wskazujące czy transmisja danego bajtu się już skończyła. Początek każdej transmisji musi zaczynać się warunkiem startu, a kończyć warunkiem stopu. Razem z adresem urządzenia...
To zmień na właściwą wartość. Wymagania masz w DS...
Że tak zapytam.. Takie ustawienie: [syntax=c] SCB->AIRCR=0x5FA0000|(3<<8); //skonfiguruj PRIGROUP na 4:4 [/syntax] Ustawia wszystkie 4 dostępne bity na preemption więc tak czy siak jest 16 grup priorytetów bez możliwości ustawienia podpriorytetów w grupach. A to nie na jedno wychodzi, co 16 priorytetów bez grup? W takim wypadku ten zapis: [syntax=c]...
[syntax=c] int i; int suma_af = 0; const unsigned char * p = (const unsigned char *)&data for (i = 0; i < sizeof(my_type)l i++) { suma_af += p[i]; } [/syntax] Zakładam, że struktura jest upakowna ;)
Kontroler flasha to nadal tylko peryferial memory-mapped, wiec SFR w ktorym ustawiasz protekcje niczym sie nie rozni od SFRów od np. SPI, i dokladnie tak samo mozna go zapisać przez SWD/JTAG . A to juz wprost odpowiedz na twoje pytanie. SWD/JTAG pozwala na rw dowolnego 32bitowego adresu w losowym momencie, niezaleznie od tego, czy rdzen wykonuje kod,...
Jeśli potrzebujesz odczytywać opór z potencjometru to niezależnie od rezystancji tego potencjometru robisz to tak: http://obrazki.elektroda.net/95_12571846... Odczyt z ADC to już kwestia konkretnego mikrokontrolera. Zakres będzie zależał od rozdzielczości, ale jak to skonfigurować to musisz już w datasheecie poczytać
Sprawdzę w weekend i skonfiguruje tak samo jak w projekcie pod Stm32
Czytałes errate?
Skoro masz datasheet wyświetlacza weźmy ten http://www.adafruit.com/datasheets/ILI93... strona 66 rozdział 7.2.20 i tutaj nie ma nic że address counter jest inkrementowany podczas odczytu, natomiast podczas zapisu jest.
Odkomentuj to: [syntax=c]// pulSrc = &_sidata; // // for(pulDest = &_sdata; pulDest < &_edata; ) // { // *(pulDest++) = *(pulSrc++); // } // // /* Zero fill the bss segment. */ // for(pulDest = &_sbss; pulDest < &_ebss; ) // { // *(pulDest++) = 0; // }[/syntax]
Musisz jeszcze skasować flagę końca konwersji w rejestrze statusowym. Pisałem żebyś manuala poczytał! JEOC: Injected channel end of conversion This bit is set by hardware at the end of all injected group channel conversion. It is cleared by software. 0: Conversion is not complete 1: Conversion complete Tu jest troszkę inaczej niż w regularnych kanałach...
Ale to jest temperatura rdzenia. Odczytać można ale ona nie oddaje temperatury otoczenia.
Pomijając sensowność używania sprintf do SKOPIOWANIA stringa do jakiejś zmiennej, to błędów jest bardzo dużo. 1. Skasowałeś stronę którą chcesz zapisywać? 2. Odblokowałeś zapis do flasha? 3. Twój zapis jest dziurawy, bo jak zero będzie na nieparzystej pozycji, to pętla nie zakończy się wtedy kiedy będziesz chciał 4. Odczytujesz FlashStatus, to sprawdź...
C-SKY Flash Programmer jest oprogramowaniem dostarczanym do pobrania przez XuanTie na stronie https://www.xrvm.cn/community/download?i... https://obrazki.elektroda.pl/1504579400_... Narzędzie to współpracuje z programatorami CK-Link do odczytu i zapisu w pamięci flash procesorów C-Sky z rdzeniem RISC. Procesory...
Oczywiście, że można to zrobić bez użycia HAL, czy SPL. Kod, który tu przedstawiłeś wymaga bardzo wielu poprawek. Nie uważasz, że funkcja zapisu do pamięci jest zbyt skomplikowana? Długa na 88 linii, zawiera dziwne stałe typu: 1 << 14, 0xF3. Np co robi ta instrukcja: [syntax=c]FLASH->CR &= 0x1FFE;[/syntax], albo taka: [syntax=c]while(FLASH->SR...
Posiadam płytkę główną z tak zwanej ruchomej głowy Co to jest??? Wiem że do ostatecznej naprawy muszę mięć wsad do tego STM32 co wiąże się kupnem sprawnej Na 100% układ będzie zabezpieczony przed odczytem, więc nie ma to sensu. Jak to połączyć i jakiego programu najlepiej użyć aby to sprawdzić? Jest to opisane w Reference Manual: https://obrazki.elektroda.pl/3530271300_...
Na jakim MCU piszesz obsługę? Na tą chwilę API jest pisane w Pythonie na PC - póki się "bawię" nakładkami. Jak już wszystko zrobię, to potem przepiszę na C, żeby je dorzucić do mojego urządzenia nad którym pracuje :) Oparte jest o STM32.
Ale to by znaczyło że, że takiego prostego mechanizmu jak w AVR nie ma poprzez zablokowanie zewnętrznym programatorem?
Już to kilka razy wrzucałem, ale u siebie mam tak: [syntax=C] io_pin_cfg(SDA_GPIO, SDA_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SDA - alt output, open-drain, 10M io_pin_cfg(SCL_GPIO, SCL_pin, m_GPIO_MODE_CNF_value(GPIO_CRx_MODE_OUT_... GPIO_CRx_CNF_ALT_OD_value));// SCL - alt output, open-drain, 10M...
A gdzie konfiguracja pinów czy RCC ? Kody do ADC na forum krążą chyba w 3 wersjach. Moja, FC i chyba nsvinca.
Podobnie jak w przypadku życzenia 8 x uint8_t, ale 9 x uint8_t zarezerwuje 16 bajtów. Chyba raczej 12 bajtów a nie 16-cie.
Nie piszesz o Cortex-M, a o STM32 - popraw temat. U innych producentów uC wygląda to zupełnie inaczej. Pamięć spod adresu 0x08000000 w normalnym trybie pracy STM32 zostaje odwzorowana również pod adresem 0 - jest dostępna do odczytu (tylko) pod dwoma adresami.
Tutaj udokumentuję moją podróż z tanią płytką deweloperską / hobbystyczną STM32F103C8T6 "blue pill" zakupioną w Ali Express. Pomimo układu scalonego oznaczonego jako "STM32F103C8T6", wewnętrzna pamięć flash wydaje się mieć 128k zamiast 64k, co czyni go bardziej podobnym do STM32F103CBT6. Wydaje się, że nie jest to nieoczekiwane w przypadku podróbek/klonów...
Witam, Ostatnio testowałem komunikację I2C z pamięciami z serii 24x. Testy były przeprowadzone na Arduino oraz STM32F103xxx. Pierwsze testy z pamięciami adresowanymi pojedynczym bajtem, czyli 24x01-24x16, działają poprawnie i jak oczekiwałem (opieram się o moje doświadczenia z rodziną PIC, tam właśnie tak to działa). Zapis/odczyt poza zakresem pamięci/adresów...
Witam, Czy spotkał się ktoś z biblioteką dla STM32, która potrafiłaby odczytywać listę symboli z danych "wkomplilowanych" dla potrzeb debugowania? Nie musi być dokładnie któryś z tych formatów co w temacie. Chodzi mi o to, aby z poziomu programu dostać się do wartości zmiennych na podstawie ich nazw z kodu w C. pozdrawiam
Witam, mam problem z odczytem więcej niż jednego kanału ADC. Dla jednego kanału miałem następujący (działający) kod (z wyzwalaniem przez TIM3). [syntax=c]void adc_init(void) { RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPCEN | RCC_APB2ENR_AFIOEN | RCC_APB2ENR_ADC1EN; RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; GPIO_CONF(GPIOA, 0,GPIO_MODE_INPUT, GPIO_CNF_INPUT_ANALOG);...
Hej, Dzięki za odpowiedz. Co do prędkości to fakt mój błąd, jednak to jest bez znaczenia w tym przypadku. Przykleiłem twój kodzik, wyłączyłem moją konfigurację ADC i DMA i niestety otrzymuje takie same rezultaty :( To jest chińska PCB wiec może coś jest nie podłączone, tylko co.... pozdrawiam i dzięki za pomoc Krzysiek
Na pierwszy rzut oka w Twoim kodzie, jak i u autora, nie ma żadnej manipulacji trybem wyjścia portu - pinu. Po wrzuceniu tego na STM32F722RE okazuje się, że nie ma to znaczenia. Przy ustawieniu trybu pinu na wyjście z open drain, odczytanie rejestru IDR daje poprawne działanie, bez zmiany trybu na wejście. Sprawdziłem to na porcie A i pinie PA0. Nie...
jednak z tego co wyczytałem w internecie SBUS to UART tx z odwróconą polaryzacją (dlaczego ?) Tak sobie Futaba wymyśliła i nic z tym się nie zrobi. Robiłem odczyt sbusa na Nucleo f446RE i zastosowałem inwerter na tranzystorze, bo tam raczej nie można odwrócić sygnału. Przed chwilą odpaliłem cubemx z Nucleo G491RE i tam w ustawieniach LPUART najprawdopodobniej...
Ogólnie spodziewałem się tej odpowiedzi ale wolałem zapytać, bo to dość popularne sterowniki. Są jakieś ogłoszenia z częściami i całymi sterownikami po naprawach to spróbuję tam uderzyć. Ogólnie przy samym MCU są goldpiny. Dziś z ciekawości to jeszcze "przedzwonię". Z tego co wiem w zabezpieczonym STM32 przy próbie odczytu się on czyści więc to bilet...
Jeśli korzystasz z stm32f4 discovery, to sprawdź czy masz dobrze ustawionego st-linka. Musisz mieć zainstalowany w systemie sterownik do niego, Keil nawet zaktualizuje w nim soft jeśli zajdzie taka potrzeba. Jeżeli chodzi o konfigurację st linka w Keilu, wszystko znajdziesz w dokumentacji u ST na stronie. Nie wiem też czy dobrze się zrozumieliśmy. Debug...
stm32f407vet6+st link i do tego ST-LINK Utility, i tak... po podłączeniu automatycznie ładuje program z procka klikam zapisz Upewnij się czy masz dobrze określony obszar flash do odczytu odpowiedni do danego uC, bo Stlink nie ustawia tego automatycznie. Może odczytujesz i wgrywasz później tylko część istotnego obszaru flash i stąd te dziwy. Przykładowo,...
Czy tak trudno odpowiedzieć na pytanie? Sam się czasami dziwie, że to taki trudne. Nie specjalizuje się w angielskim, a trudno przetłumaczyć/znaleźć zagadnienie w pdfie. Wszystko wynika ze specyfiki takiej pamięci. Pomijając aspekty fizyczne, czysta komórka pamięci flash odpowiada stanowi "1". Podczas zapisu do pojedynczej komórki można tylko i wyłącznie...
STM32L073RZ: 1034 +157 stron Masz problem z ADC. Czy w związku z tym rozwiązania problemu będziesz szukał w rozdziale o ADC (49 stron), czy może na wszystkich ~900 pozostałych (np. w rozdziale o USART albo SPI)?
To może zacznij od aktualizacji biblioteki której używasz, bo tym sposobem nigdy nie dojdziesz do tego co jest problemem. W dokumentacji na stronie ta struktura wygląda inaczej niż to co wrzuciłeś wyżej. W paczkach od ST ta struktura również wygląda inaczej niż to co wrzuciłeś wyżej.
Pracuję nad obsługą panelu dotykowego z interfejsem TSC2046 (wyświetlacz ILI9325 z zestawu STM32Mini_01). Wykonałem inicjalizację SPI i próbuje czytać współrzędne. Przekopałem internet, siedzę z dokumentacją ale mimo próśb i grób te odczyty są strasznie losowe. Może zanim będę męczył moim kodem, może ma ktoś dedykowane przykładowe programu do panelu...
Zrobiłem już cos takiego z Vinculum... ale to się okazała porażka, bo na firmware V2DAP miałem taki problem, że jak otworzyłem plik do zapisu i odczytu to po zapisaniu danych gdzieś w połowie pliku, jego dalsza część była ucinana i kończył sie na tym co właśnie zapisałem... Mam rozumieć, że zrzucasz FTDI Chips winę za to, że twoja aplikacja nie działała...
A jak daję w f_read & przed zmienną to nic nie zmienia? Zastanów się nad tym sam... Funkcji każesz odczytać 480 bajtów. Gdzie ona je niby ma zapisać, skoro podajesz jej adres zmiennej o rozmiarze 2 bajty? To że wpisujesz tam '&' nie sprawia że nagle zmienna uint16_t staje się workiem bez dna... 4\/3!!
Potrzebujesz programatora, ale pewnie i tak jest zabezpieczony przed odczytem i możesz co najwyżej wgrać nowy wsad.
Witam! Mam pytanie o kwestię banalną przy pracy z programatorem, ale niewiadomą puki co dla mnie, przy pracy z j-tagiem. Jak włączyć zabezpieczenie przed odczytem flash-a?
Wrzuć cały projekt i podaj więcej szczegółów (kompilator, skąd są pozostałe pliki "bazowe", ...). 4\/3!!
Witam, Niestety natrafiłeś na ogólnie znany problem :-) I2C w stm32f103 jest po prostu ... nie działa najlepiej. Jeżeli dobrze pamiętam przy próbie odczytu nie ustawia mu flagi IV5 i można tak czekać i czekać. Jeżeli masz nowe biblioteki to spróbuj zmienić prędkość transmisji na 50kB. Jeżeli to nie pomoże to zostaje ci bitbanging :)
Udało Ci się? Bo ja zaczynam się bawić CDC na STmie.
Niezależnie od tego, co z nimi potem robisz, najwygodniej czytać je zwyczajnie przez adresy po jednokrotnym ustawieniu odwzorowania QSPI w przestrzeni adresowej, a nie poleceniami odczytu pamięci. W EP możesz kupić elektronicznie dowolny numer.
Mój procek to STM32F100. Znalazłem błąd, po prostu odczytywałem wartość nie z tego rejestru co trzeba.. Teraz mój kod wygląda tak i działa. Nie wiem czy jest do końca dobry. Oczywiście wcześniej trzeba poprawnie skonfigurować piny wejściowe i sygnały zegarowe. [syntax=c] ADC1->SMPR2 |= ADC_SMPR2_SMP1; //sample time 239.5 cykla ADC1->SQR1 = 0 ; //jedna...
Odczyt rejestru DR przez debugger jest odczytem, a więc resetuje flagę RXNE w rejestrze SR. Wyłącz podgląd rejestru DR to powinno być lepiej.
Podłącz programator i spróbuj odczytać. Jeśli Procek jest zabezpieczony przed odczytem to wyskoczy ci odpowiedni monit. Zabezpieczone stm32 odczytują chińczyki, Ale nie jest to tanie.
W SPI jest bufor FIFO. Po pierwszym wysłanym bajcie nie odczytujesz DR - może to przeszkadza i przy drugim transferze zwraca starą wartość. Sprawdź coś takiego: [syntax=c]uint8_t MEMS_read1B( uint8_t data ) { uint8_t niewazne; while( !(SPI5->SR&SPI_SR_TXE) ); CS_OFF; NCS_MEMS_ON; SPI5->DR = 0x80|data; while( !(SPI5->SR&SPI_SR_RXNE) ); niewazne = SPI5->DR;...
W tym samym rejestrze (AFIO->MAPR) znajduje sie bity konfiguracyjne JTAG/SWD. Dokumentacja mówi, że są one tylko do zapisu, a odczyt tych bitów daje wynik niezdefiniowany. Może warto sprawdzić bezpośredni zapis do rejestru [syntax=c]AFIO->MAPR = AFIO_MAPR_TIM4_REMAP; // bez |[/syntax] albo z maską na te bity [syntax=c]AFIO->MAPR |= AFIO_MAPR_TIM4_REMAP...
Proponuję zwrócić się do wróżki. Tu odpowiadają inżynierowie, którzy w celu udzielenia odpowiedzi potrzebują tak prozaicznych rzeczy jak schemat i tekst programu.
Liczbę impulsów masz w CNT, nie w CCR2. Zerowanie go nie ma sensu, wystarczy odejmować od siebie dwa kolejne odczyty.
Zmiana preskalera wymaga updatu timera. Po update (EGR rejestr) wymagane zapewne jest wyczyszczenie flag. Pomiędzy Upadate i czyszczeniem flag trzeba wstawić jakiś dodatkowy odczyt.
Aha, a jaka jest częstotliwość próbkowania tego sampla? 62,5KHz jeżeli dobrze pamiętam. Ze 4 takie pozytywki zrobiłem na różnych prockach i każda z innymi parametrami zależnymi od możliwości procka. rozważam próbki z karty Da się, ale trzeba zadbać o bufory bo losowy odczyt nie jest zbyt szybki. DataFlash był by lepszy. Tu odczyt z karty, 4 sample...
A obsługa SPI przez DMA to co? Nic lepszego ani bezpieczniejszego nie wymyślisz..... za dużo prądu zmień MCU... Generowanie zegarem, czy timerem czegokolwiek to proszenie się o błędy. Zmniejszanie taktowanie nie koniecznie zmniejszy poboru prądu jeśli korzystasz z trybów stop lub sleep
Uart2 taktuję z APB1, dla którego ustawiłem taktowanie 45MHz za pomocą preskalerów. A do BRR wpisuję 45MHz/9600. Czyli wartość 4687. Profil zasilania sprawdzę, projekt napisany w System Workbench for STM32 Ten odczyt zmiennej WS dopiszę. Nie wiem czy dobrze cię zrozumiałem, ale uruchamiałem już usarta na HSI wpisując do BRR 16mhz/9600 i wszystko działało,...
1. Jak chcesz odpowiedź, to podawaj WSZYSTKIE dane. Skąd mamy wiedzieć co jest pod LCD_RWPORT? Może jest zdefiniowane jako "("? 2. Nie wiem po co te magiczne kombinacje. W przypadku STM32 to w ogóle nie ma sensu, bo wystarczy jakbyś sobie zdefiniował LCD_RWPORT jako "GPIOA", a nie samo "A" (jak zapewne planujesz) i już cały pomysł sklejania makr jest...
Witam. Zaopatrzyłem się niedawno w aplikację zwaną Flash loader demonstrator. Umożliwia ona m.in. zapis i odczyt pamięci programu mikrokontrolera STM32 przez bootloader poprzez RS232. Gdy chciałem odczytać pamięć flash i zapisać obraz pamięci w pliku hex mocno się zdziwiłem, gdyż plik miał rozmiar 319744 bajtów, a flash mojego STM32F103RB ma "tylko"...
Sprawa wygląda następująco kiedy naciskam Conect to the target to wyskakuje error a jak wejdę w Target->Settings to wykrywa mi poprawnie Serial Number(kiedy odłączę od USB to nie pokazuje jak podłączę to pokazuje) Dodano po 7 pisałem że f0 nie da rady bo natknąłem się na tą stronę Dodano po 2 najbardziej się boje tego że procek mi się uszkodził no...
Musisz najpierw zewrzeć pin BOOT0 do masy Błąd binarny się wkradł - BOOT0 trzeba podciągnąć do "plusa", BOOT1 do masy.
Ok, Jest jakieś sensowne zastosowanie zmiennej const i volatile? Stricte zmiennej to nie ma. Taka kombinacja może mieć ewentualnie sens w przypadku wskaźnika odnoszącego się do sprzętowego rejestru tylko do odczytu.
Wpisujesz do rejestru danych 0x60 i ze względu na 1 stopniowy FIFO, TXE jest ustawiany w następnym cyklu APB, więc chwilę później wpisujesz "losowy bajt". Bezpośrednio po wysłaniu polecenia (0x60), ustawiana jest flaga RXNE, ponieważ interfejs coś już odebrał, a Ty odczytujesz to coś = "śmieci" i wychodzisz z funkcji. Właściwe dane przyjdą dopiero w...
Zapomnieć o SPLu
Jeśli zmiana rozmiaru buforów powoduje że program przestaje działać oznacza to że prawdopodobnie kończy się pamięć na stosie. Kilka rozwiązań jest. 1. zwiększyć stos 2. zdefiniować bufory jako static albo zmienne globalne wtedy nie trafią na stos 3. jeżeli idea projektu na to pozwala podzielić odczyt na mniejsze paczki i zapisywać po trochu(używając...
Witam, Mam mały problemik ze skonfigurowaniem przetwornika ADC i DMA. Założenia są takie aby odczytywać 6 kanałów za pomocą ADC1. Procek to STM32F103Vx kanały ADC_IN10 - 15 podłączone do PC0-PC5. Problem jest taki, że w tablicy do której powinna być przesyłana wartość z przetworników są ciągle zera, ale sporadycznie na pierwszej pozycji pojawia się...
Statystyki są sumaryczne, przecież to widać że liczby stale rosną. Odczyt niczego nie kasuje, częstotliwość odczytów jednak ma wpływ na działanie całego systemu - na czas generowania tych danych cały RTOS jest wyłączony. 4\/3!!
Problem rozwiązany. Okazało się że podciągnięcie z 3,3v przez rezystor 4,7kOhm było niewystarczające. Wystarczyło zmienić podciągniecie na 5V.
Nie miałem do czynienia z STM32, ale co ta linia robi: SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b; ?
Dzięki. Możliwe że bingo. Kanały Timer'a1 są akurat dzielone z interfejsem SPI2. Jeszcze dzisiaj to sprawdzę. [Edit] Miałeś rację. Kanał OC1 Timera1 kolidował z spi2. Skorzystałem z OC4 i fatfs ładnie działa we wszystkich konfiguracjach. dzięki Pozdrawiam
Teraz lepiej. Możesz profilaktycznie dorzucić jeszcze resetowanie BDCR bitem BDRST (ustawić na 1, ustawić na 0) oraz ustawiać źródło zegara i włączać samo RTC dopiero po tym gdy LSE już będzie działać. Jeśli dalej nie będzie działać, to należy swoją uwagę zwrócić w kierunku spraw sprzętowych.
Abstrahuję tu juz od sprintf i funkcji piszących na ekranie, których w tym miejscu **absolutnie** nie powinno być. Ogólnie masz racje, tutaj sprintf jest już po pomiarze (drugie przerwanie i tutaj jest zmierzony okres przebiegu). gu32_T1 < początek pomiaru gu32_T2 < koniec pomiaru Jednak wytyczne się zmieniły i można do moich celów zrobić inaczej....
A jak często wykonujesz tę konwersję? Konwersja jest dokonywana jednorazowo po naciśnięciu przycisku. Wystawiany jest sygnał startu konwersji i po 3us powinien nastąpić odczyt AD. To co za różnica, kiedy odczytasz wynik? Jest różnica. ADC odczytuje 256 pikseli linijki CMOS, odczytuje 13 razy więc razem jest 3328 odczytów ADC. Całość musi być odświeżana...
Hmm to czemu im to działa na słabszym procesorze? http://blog.tkjelectronics.dk/2014/01/co...
Witam ponownie. Niedawno zacząłem zabawę z ta pamięcią (m25p16) firmy ST. Niestety już na początku kłody pod nogi. Wstępnie posiłkowałem się przykładem z Keila do pamięci m25p64, gdyż uznałem, że pamięci z tej samej rodziny programuje się tak samo. Po nieudanych próbach zapisu i odczytu danych (jedyne co działało to odczyt numeru identyfikacyjnego)...
I nadal jest to lan8742A ewentualnie dp83848, a nie lan8720, ewentualnie ENC28J60. Podstawowy zestaw rejestrów PHY jest standardowy więc jest szansa, że "sterownik" jednego zadziała z innym (o ile operuje tylko na obowiązkowym zestawie i nie sprawdza modelu PHY), skonfiguruj go więc na taki jaki obsługuje Cube i zobacz co sie stanie. Bo tak na prawdę...
Czy ja wiem skoro mój ulubiony mikrokontroler jest tani i dobry https://www.olx.pl/d/oferta/stm32-stm32f...
Co do pól bitowych to mam Je odbierać i wysyłać więc nie mam wyboru. To nie jest prawda. Odbierane i wysyłane są bajty, odczyt i zapis zazwyczaj realizuje się poprzez maskowanie wartości i przesunięcia (czyli operacje bitowe a nie pola bitowe) Chciałem ułatwić rzycie osobie która nie jest programistą w składanie ramki do wysłania. Po to się tworzy...
Nie do końca, jeśli masz drugi taki sam model możesz z niego zaczytać bootloader Jak jeśli jest zabezpieczony przed odczytem?
Są jakieś mechanizmy odczytu flash, jednak to nie jest ani bardzo proste ani za bardzo legalne. Tutaj jakaś wstępna lektura https://sec-consult.com/blog/detail/secg...
STM32F10xxx I2C optimized examples AN2824
Czy istnieje jakaś możliwość sprawdzenia czy nasz PHY odbiera nośną lub mówiąc prościej czy kabel jest wpięty bez odczytywania rejestrów PHY? Czy też muszę cyklicznie czytać rejestry PHY i sprawdzać flagę link status?
Wykresy nie wyglądają źle, ale dlaczego mając Wiktorię nie wykonałeś skanu w tym programie? Nie musi być najnowsza, ale gdybyś chciał, możesz ją pobrać stąd: https://hdd.by/victoria/ 65535=FFFF - niemal na pewno błędny odczyt, który jednak może się powtórzyć i w innych programach. Pierwszy dysk wygląda ok, drugi - wymagałby bardziej szczegółowej diagnostyki,...
A ja sądzę, że jedynym sensownym rozwiązaniem jest zrezygnowanie z DMA, jeśli i tak procesor musi reagować na każdy odczyt. Albert
Wydaję mi się, że na pinach I/O jest informacja o maksymalnym napięciu Vdd+4.0 V Znów "nie w tym kościele dzwonią". jest potrzeba nadawania sygnałów analogowych Zatem znajdź jakiś przetwornik DAC (+ ewentualnie wzmacniacz operacyjny), a nie ADC. ADC - Analog to Digital Converter DAC - Digital to Analog Converter Jaka ma być dynamika zmian tego napięcia...
Proszę bardzo! Wersja minimalna - zapamiętywanie jednej zmiennej na F0. No fakt, aż 36 wierszy. Nie no błagam... nie rozśmieszaj mnie. Chodziło o kod który dla DOWOLNEJ ilości zmiennych (oczywiście w granicach rozsądku tak aby wszystkie mieściły się w emulowanym EEPROMie) pozwala NA ŻĄDANIE odczytać/zapisać WYBRANĄ zmienną. A ty wrzucasz tu jakieś...
zujnik jest podłączony bez rezystorów wzmacniających, ponieważ odczytałem ze schematu, że nie są potrzebne(próbowałem także z rezystorami 4k7). Przy sprawdzeniu bufora z danymi w programie Stm Studio, nic się nie zmienia a flaga busy jest ustawiona jedynie przy odłączeniu kabla SDA od czujnika. Proszę o pomoc w znalezieniu przyczyny braku odczytu i...
Witam Was Koledzy, mam problem z pomiarem ADC na mojej płytce Nucleo. Wykorzystuję bibliotekę HAL. Posiadam belkę tensometryczną, której sygnał wzmacniam wzmacniaczem a następnie chce go przerobić za pomocą przetwornika, który znajduje się na płytce z sygnału analogowego na cyfrowy i odkształcenie belki obserwować w STMSTUDIO. Prosiłbym Was o pomoc...
Do slave wysyłam same zera I to jest oczywiście źle. Adres rejestru ma 6 bitów a pierwsze 2 bity transmitowane to R/W i MB. O nich zapomniałeś. Przy jednym bajcie - R musi być ustawiony MB wyzetowany. Tak więc musisz wysłać 0x80 a nie zero. DS-y trzeba czytać całe a nie tylko jedną tabelkę.
Reasymując: nie znamy schematu i nie wiadomo, jakie są objawy niedziałania programu. No, to już możemy pomagać, bo Autor nie chce użyć debuggera, żeby sprawdzić, co się dzieje w procedurze odczytu klawiatury.
Czyli chodzi tutaj o to, że bez ustawienia opóźnienia może błędnie działać dalej opóźnienie FLASH i FLASH będzie źle programowany? To moja prywatna hipoteza, ale obstawiam, że jeśli nie ustawisz opóźnienia, to dane odczytywane z flash są błędne i program się wysypuje.
No właśnie... Jak dla mnie po każdej wysyłce (sprawdzonej nie pustym buforem, ale oczekującymi danymi odebranymi!) odczytuj DR (do jakiejkolwiek zmiennej). No i 3x odczyt z DR też nie ma specjalnego sensu... 4\/3!!
Niezłe... Do odczytu (wprost) wartości jednej rejestru używać funkcji z biblioteki STM32 i jeszcze rozpaczać nad tym że nie działa... Ten temat jest o przykładach NIE korzystających z biblioteki, nie wiem więc skąd pomysł na uzyskanie w nim pomocy z tym dziwacznym tworem... 4\/3!!
A ja zadam "głupie" pytanie: próbowałeś po prostu wpisać zmienną do View->Watch1 (oczywiście w trybie debugowania)? Jakoś nigdy nie miałem kłopotu (z poziomu Watch table ) z odczytem wskaźnika jak również z zapisem i odczytem komórki pamięci na jaki wskazuje.
W CubeMX konfiguruje ETH. Jak w grę wchodzi kod generowany przez CubeMX to nie dziwne, ze nikt nie wie o co chodzi. :D Aktualnie myśle, ze MAC poprawnie komunikuje się z PHY, poniewaz podczas inicjalizacji eth podglądam wartość rejestru BSR (adres 1) która wynosi 30729. Ale to Ci tylko mówi, że MDIO działa, nie że komunikacja miedzy MAC a PHY zachodzi...
Problem był w jednym rejestrze a raczej jego braku. Poniżej wstawiam poprawne rozwiązanie: [syntax=c] uint8_t ByPassEN = 0x02; //bypass enable uint8_t Mode = 0x12; // 16bit, tryb ciągły 8HZ HAL_I2C_Mem_Write(&hi2c1, 0xD0, 55, I2C_MEMADD_SIZE_8BIT, &ByPassEN ,1,1000); HAL_I2C_Mem_Write(&hi2c1, 0x18, 0x0A, I2C_MEMADD_SIZE_8BIT, &Mode,1,1000);...
Dobra, poradziłem sobie inaczej. Użyłem timera, ale nie korzystałem z przerwań, tylko ustawiłem częstotliwość inkrementacji timera na 1us i czekałem, aż wartość timera przekroczy zadany czas ;) Na potrzeby 1-wire wystarczyło :)
http://lmgtfy.com/?q=stm32+i2c+eeprom Pierwszy link: http://forbot.pl/blog/artykuly/programow...
Witajcie, stworzyłem analizator w oparciu o wzór na DFT. Niby wszystko fajnie, ale problem jest taki, że jak puszczam to w ruch to na każdym "widmie" mam to samo ;/ Sprawdzałem na dwóch prążkach (różne konfiguracje) i ciągle skaczą w taki sam sposób. Kod main.c: [syntax=c]/** ****************************************...
To sprecyzuję odpowiedź : Niezasilany uC nie może mieć zwarcia do GND czy VDD na dowolnym I/O. Z opisu wynika, że uległa przebiciu dioda zabezpieczająca wejście przed ESD (na poniższym schemacie w prawym dolnym rogu) lub jeden z tranzystorów. https://obrazki.elektroda.pl/1952618000_... Przypuszczam, że coś zabiło INA99 a następie przebiło...
odczyt stm32 stm32 odczyt karty stm32 flash odczyt
zamiennik tda7560 śruba mocować amortyzator marshall footswitch
pioneer instrukcja obsługi polski pioneer instrukcja obsługi polski
Opis pinów w kostce do podłączenia radia Hyundai i20 Słabo świecące tylne światła w Iveco Daily - diagnostyka i naprawa