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,...
uC odczytuje napięcie, nie rezystancję. W Twoim przypadku potencjometr jest częścią dzielnika napięcia. Więc jeśli chcesz zastosować inny potencjometr, musisz także zmienić drugi rezystor w dzielniku. Wiec, cytując kolegę parę postów wyżej: "pogoogluj pojecie "dzielnik napiecia" ".
Sprawdzę w weekend i skonfiguruje tak samo jak w projekcie pod Stm32
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.
Czytałes errate?
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]
Witam, chciałbym odczytać temperaturę jaka jest w pomieszczeniu z STM32F103RB. Czy aby odczytać temperaturę potrzebuję coś oprócz STMu? Przepraszam za banalne pytanie, ale przed zakupem chciałbym się upewnić. Pozdrawiam.
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...
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...
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?
USART1->ISR &= ~USART_ISR_RXNE; To jest po pierwsze zbędne - flaga jest czyszczona automatycznie jeśli coś odczytasz - a po drugie błędne - do czyszczenia flag słłuży rejestr ICR, a nie ISR (który jest tylko do odczytu). Na pinie RX warto albo ustawić wewnętrzne podciąganie, albo zrobić podciąganie zewnętrzne.
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.
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, wyjasnilo sie, Trzeba czytac wiecej niz uwaznie datasheet'y. Moja konsternacja wyniknela z "zaleznosci" pamieci od producenta, np. 2432 Atmela ma najstarsze (nie uzywane bity) adresu jako "do not care" czyli nie wazne co tam jest a np Microchip podaje za ma tam byc 0000. Pozdrawiam
Ustawiasz GPIO na "konfigurację" GPIO_CRx_CNF_IN_PULL_U_D_value, tymczasem powinieneś używać GPIO_CRx_MODE_CNF_IN_PULL_U_D_value.
No wydaje się, że to mogło by zadziałać - w STM32F1 nie było takiej opcji (a przynajmniej nie było bitu o takiej nazwie). 4\/3!!
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...
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...
Nie ustawiłeś czasu samplowania. Z tego względu ma on wartość domyślną, wynoszącą 1.5 cyklu, która jest po prostu zbyt niska.
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...
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)?
Twierdzisz, że pisałeś z notką, a kod jasno pokazuje, że nawet do niej nie zajrzałeś. Kod ogólnie to same błędy, nie ma sensu ich wymieniać nawet. Całość do poprawki. Brak obsługi ACK. Niepoprawna obsługa wysyłania. Nawet jeśli przyjąć ze ilość danych zawsze będzie = 2. Na pewno nie odczytujesz z pod adresu 0x75.
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...
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.
A jeszcze pytanie, bo ja bym chciał odpalić na tym STM aplikację która obsługiwała by jako pamięć danych pendrivea... 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ł...
Też mam problem z wyświetlaczem zestawu STM32Mini, przekątna 2.8" ten sam interfejs (xpt2046) powtarzalność odczytów praktycznie nie pozwalała na jego wykorzystanie. Program obrabiający te dane niewiele pomoże jeśli rozrzuty odczytu tego samego punktu są tak olbrzymie, no chyba że cały ekran chcemy podzielić tylko na 4 obszary. Mam porównanie z panelem...
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?
Witam Mam problem z odpaleniem ADC na STM32F205ZG. Potrzebuje uruchomic przetwornik na 1 pomiar i w wygenerowanym przez ten przetwornik przerwaniu EOC odczytac pomiar. Czy ktos bylby w stanie podzielic sie kodem robiactym taka wydawaloby sie banalna rzecz? Moj kod niestety nie dziala. Probowalem zarowno z biblioteka ST (kod ponizej) jak i bez niej....
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.
Witam, chciałem skonfigurować przetwornik ADC, tak, żeby jego konwersja była wywoływana programowo. Włączyłem zegar i skonfigurowałem pin jako AIN. Chciałem, żeby przetwornik był pierwszy w kolejce w trybie regular sequence. Moja konfiguracja przetwornika: [syntax=c] //ustawienie channel1 ADC1->SMPR2 |= ADC_SMPR2_SMP1; //sample time 239.5 cykla ADC1->SQR1...
Tak, obecnie jest coś takiego, jak STM32CubeProgrammer jako taki powiedzmy program "produkcyjny", nie zaś środowisko rozwojowe - STM32Ide. Można wykorzystać wewnętrzny bootloader przez wyprowadzenia PA9 i PA10. Do tego potrzeba też konwerter USB<->UART z ustawionymi poziomami napięć +3,3 V. Z kolei jeśli chcesz dołączyć ST-LINK'a, to trzeba to...
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.
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;...
Witam "Bawię" się tytułową pastylką w zestawie z STM32F103. Napisałem program, który w teorii i częściowo w praktyce działa, ma jednak jakieś ale. Program jest bardzo prosty: reset i odczyt obecności urządzenia na linii, potem komenda 33h (read ROM) i odczyt odpowiednio rodziny (01), numeru seryjnego (6 bajtów) i CRC i tak w kółko (pętla z opóźnieniem,...
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.
Liczbę impulsów masz w CNT, nie w CCR2. Zerowanie go nie ma sensu, wystarczy odejmować od siebie dwa kolejne odczyty.
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...
Rozumiem, że piszesz loader do ST-Linka.
Procesor konkretnie STM32F411 - w pierwszym poście jest napisane. Trybu uśpienia na razie nie używam bo przy tych wybudzaniach co 125us nie ma to zbytnio sensu. Próbowałem też podejścia z trybem InputCapture - wejscie DRDY skonfigurowałem w tym trybie, transfer DMA z Timera generowany na opadającym zboczu przerwania. W tym transferze chciałem "uruchomić"...
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...
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,...
Witam. Realizuję właśnie odczyt temperatury na płytce Nucleo z wykorzystaniem ds18b20. Mam następujący problem. Odczytując LSB i MSB z czujnika pojawia się błąd w postaci tego że MSB ma wyższą wartość niż można by było zakładać. Po odczycie temperatury wyrzuciłem sobie obydwie wartości na konsolę przez UART. W temperaturze pokojowej widać że LSB się...
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.
Sprawdź najpierw pochodzenie tego zera. Najlepiej w terminalu jak Ci pisałem. Moje podejrzenie jest takie, że jak wysyłałeś przez putst() było OK, bo on eliminował zero na końcu Twojego "stringa" char dataBuff wychodząc z funkcji. To zero pojawia się w tablicy niejawnie, ale tam jest. Gdy uruchamiasz DMA nie bierzesz pod uwagę, że tablica ma rozmiar...
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.
Dodalem na wypadek przed odczytem 3-krotne odczytanie rejestru DR, by wyzerowane zostaly poprzednie bledy. Dodatkowo przepisalem calosc na bezposredni dostep do rejestrow i... ruszyl. ADC czyta prawidlowo, na biurku z wiszacymi przewodami udalo uzyskac sie efektywna rozdzielczosc 19 bitow:). Dziekuje za wszystkie rady. Chyba czas zaczac rezygnowac z...
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.
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...
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!!
========================================... Option Bytes Programming functions ========================================... This group includes the following functions: - void FLASH_OB_Unlock(void) - void FLASH_OB_Lock(void) - void FLASH_OB_WRPConfig(uint32_t OB_WRP, FunctionalState...
Sprawdź czy TIM4 dobrze "tyka"...
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.
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)...
BSRR i BRR zmieniają stan dowolnie wybranych bitów w wyniku samego zapisu jedynki, bez operacji logicznych. Odczyt z tych rejestrów zwraca wartość nieokreśloną, więc wynik operacji logicznej też jest nieokreślony. Z tymi dwiema linijkami ciut przesadziłem. To, co robi ta funkcja da się zapisać w jednej linijce: GPIOB -> BSRR = 0xffff0000 | ((1 <<...
Witam. Na początku muszę zaznaczyć, że jestem raczej początkującym w temacie mikrokontrolerów i ogólnie elektroniki. Kupiłem sobie stm32f0 discovery oraz termometr ds18b20, podłączyłem wszystko jak trzeba - pin 1-wire do pc7, oraz piny zasilania odpowiednio do 3v i GND na płytce. Korzystam z IAR Embedded Workbench EWARM. Termometr działa, bo procedura...
Czy ja wiem skoro mój ulubiony mikrokontroler jest tani i dobry https://www.olx.pl/d/oferta/stm32-stm32f...
Nie do końca, jeśli masz drugi taki sam model możesz z niego zaczytać bootloader Jak jeśli jest zabezpieczony przed odczytem?
ADC wyzwalaj timerem, zrób dwa bufory na odczyty i pakuj do niech dane naprzemiennie, odpuść tryb circular. Otóż to, cicrular ma sens na przykład dla sygnałów wolnozmiennych, gdy jest obojętne, kiedy zmierzysz. Wtedy po prostu na początku programu odpalasz DMA z ADC i nie musisz się niczym przejmować, zawsze w pamięci będzie aktualny pomiar. Ale jeśli...
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...
Hmm to czemu im to działa na słabszym procesorze? http://blog.tkjelectronics.dk/2014/01/co...
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
bitbanding to tylko zapis lub odczyt bitu, to nie odczyt/modyfikacja/zapis.
Myślałem, że procek też gdzieś to przechowuje w końcu jedna z linii interfejsu MII go o tym informuje a tu taka nie miła niespodzianka :(
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!!
STM32F10xxx I2C optimized examples AN2824
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...
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ś...
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.
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.
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);...
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!!
http://lmgtfy.com/?q=stm32+i2c+eeprom Pierwszy link: http://forbot.pl/blog/artykuly/programow...
W wyszukiwarce wpisz "stm32 eeprom emulation".
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...
A jak z napieciem interfejsu? Oba twoje ulpi dzialaja z 1.8v na io. Do tego polaczenie nie moze byc zbyt dlugie. Skoro nie masz nic na d+ I d- sprobuj odczytac rejestry ukladu ulpi. Bedziesz wiedzial czy sam interfejsu ulpi dziala (w pzypadku poprawnego odczytu rejestru) .
Twardy orzech do zgryzienia
Jakby mógłby wyglądać odczyt wartości licznika używając przerwania ?
Prawdopodobnie chodzi o to, że każde wyslanie bajtu, jednocześnie ustawia bit RXNE. Ja w funkcji wysylania kodu rozkazu nie czytam DR, więc bit pozostaje ustawiony. W takim razie każde wysłanie bajtu powinno być powiązane z odczytem DR, bez względu czy ma to sens czy nie. No jak dla mnie to każda operacja na SPI to jest jednocześnie zapis i odczyt....
Dysk po gwarancji, systemowy ;/ Skan w MHDD nie udaje się zrobić... same "?" i "#" na sektorach......... wie ktoś jak zapisać loga z MHDD? zaznaczam, że nie mam dyskietki ;/
Hmm no racja, funkcja Hal'a odczytuje w tym samym, a wg DS żyroskopu powinno się odczytać następny bajt. Inaczej to byłby żyroskop jasnowidz - podawałby odpowiedź na pytanie przed jego zadaniem. Myślę zę w Hoghwarcie były takie urządzenia. funkcja Hal'a odczytuje w tym samym A jak może w innym? Biblioteka nie może wysyłać niczego bez wyraźnej zgody...
To co tam jest na tej stronce, to może jakieś specyficzne implementacje dla Keila. Generalnie dla zagnieżdżonych sekcji krytycznych polecam przejrzeć kod z distortos. To będzie Twoje "enter": https://github.com/DISTORTEC/distortos/b... a to "exit": https://github.com/DISTORTEC/distortos/b...
Czyli jednak Bascom jest 10 razy lepszy ;) W Bascomie odczyt dowolnego kanału zajmuje jedną linijkę i nie trzeba kombinować z DaMAmi W STM32 też nie trzeba kombinować z DMA, których AVR i 8051 nie ma. Wszystkie przydatne funkcje znajdziesz w "stm32l0xx_hal_adc_ex.c". Bez problemu bez DMA a nawet przerwań możesz wyzwolić konwersję, czekać na jej koniec...
Teraz już rozumiem. Układ cały czas przełącza się pomiędzy podawaniem prądu na grzałkę, a pomiarem. A czas ten ustalany jest chyba przez R1 i C4. Całkiem proste, bez uC, bez układu do odczytu termopary, a działa. Dzięki za wyjaśnienie.
odczyt stm32 stm32 odczyt karty stm32 odczyt programu
traktorki honda napięcie akumulatora solar zabezpieczony pendrive
robot koszący parkside generator funkcyjny
Czujnik zużycia klocków w Volvo FH12 - jak działa? Aktualizacja firmware Toshiba 40L5463DN Smart TV