Podłączenie programatora UART i wykonanie flash read nie zepsuje chipa, ale trzeba by było wlutować RX i TX aby poprawić ślady na płytce. Nie widzę żadnych padów programisty na płytce, twardo. Czy chcesz spróbować? zrobić zrzut oprogramowania bkWriter? Dzięki, spróbuję jak będę miał czas na rozłożenie rzeczy i podpięcie wszystkiego. Te zdjęcia zostały...
https://obrazki.elektroda.pl/8808596700_... Pokażę tu jak łatwo uruchomić MAX31855 z Arduino a potem omówię jego protokół komunikacji. MAX31855 oferuje 14-bitowy pomiar temperatury z zakresu zależnego od użytej sondy, od -270°C aż do 1800°C. MAX31855 oferuje prosty protokół komunikacji oparty o SPI, zasadniczo odczytujemy z niego tylko...
Rzeczywiście, ta metoda nadaje się znacznie więcej niż dla Wemos D1, nie chciałem nic takiego sugerować, po prostu na Wemos D1 będzie kilka tematów stąd taki tytuł. Tutaj jest nieco więcej szczegółów: https://github.com/JAndrassy/ArduinoOTA ArduinoOTA wspiera: - classic ATmega AVR with at least 64 kB of flash (Arduino Mega, MegaCore MCUs, MightyCore...
Cześć, Jestem w trakcie tworzenia małego projektu. Do obsługi 1wire potrzebuję korzystać z przerwania na PC0. Siedzę nad tym dłuższy kawałek czasu i już naprawdę zgłupiłem. Są dwa kody - jeden ma skonfigurowane przerwania z PC0, drugi z PC1. Dlaczego ten z PC1 działa poprawnie, ten z PC0 nie? Sprawdziłem PB0, również nie działa poprawnie. Wykorzystuję...
Witam, czy komuś udało się uruchomić STM32, Keila 5 i uruchomić szablon Vector i np string w C++? Zdaję sobie sprawę z narzutu, jaki wprowadzi wykorzystanie tak wysokiego poziomu programowania na mikrokontroler. Pytanie, czy jest to na tyle stabilna implementacja, że można tego używać? Czy też z Vectoriem i stringiem są problemy i lepiej od razu przygotować...
Jeżeli chodzi o C++, to czy ma On jakieś wady w systemach wbudowanych? Np, jak wygląda działanie na stringach. STM nie ma MMU, więc w jaki sposób odbywa się coś takiego: [syntax=c] string txt = "Ala ma"; txt += " kota\n" [/syntax] Czy jeżeli na stringa jest malocowana pamięć to znaczy że muszę ją zwolnić? free(txt); Nie wiem czy jasno się potrafię wyraźić....
Korzystam z tego [url=http://www.tme.eu/pl/details/wsh-47... RS485 bazującego na układzie SP3485 ([url=http://www.waveshare.com/w/upload/... a nie jak pisałem MAX3485. Wyprowadzenia /RE oraz DE odpowiadające za kierunek transmisji są ze sobą połączone. Wykorzystuje zestaw...
im using samle from here http://iteadstudio.com/produce/enc28j60-... just uncoment some string in ENC28J60.h it looks like #define ENC28J60_CS GPIO_Pin_4 #define ENC28J60_CSL() GPIOA->BRR = ENC28J60_CS; #define ENC28J60_CSH() GPIOA->BSRR = ENC28J60_CS main function now main{ ENC28J60_CSL(); Delay(25000); ENC28J60_CSH() }
Mam problem z wyświetlaniem współrzędnych dotyku za pomocą funkcji getDisplayPoint() z GLCD dla zestawu HY_mini . Walczę z tym już kilka dni i nic . Do konwersji z liczby na string używam funkcji itoa() i po podstawieniu konkretnej liczby funkcja GUI_Text wyświetla ja poprawnie . Krzyż wskaźnika rysuje dokładnie w punkcie dotyku funkcją DrawCross(display.x,display.y);...
Zastosowałem się do Twoich wskazówek, porzuciłem HID na rzecz właśnie vendor specific. Posprzątałem także ConfigDescriptor i teraz wygląda tak: [syntax=c]const uint8_t ConfigDescriptor[SIZ_CONFIG_DESC] = { 0x09, // bLength: Configuration Descriptor size USB_CONFIGURATION_DESCRIPTOR_TYPE,// bDescriptorType: Configuration SIZ_CONFIG_DESC, // wTotalLength:...
Racja, przeciez to logiczne. Po dodaniu najzwyklejszego opoznienia printf wreszcie dziala :) Chcialem jeszcze dopisac obsluge operatora \n wiec zmodyfikowalem funkcje __vfprintf w taki sposob jednak nie dziala: static int __vfprintf_(printf_file_t *stream, const char *format, va_list arg) { char character; stream->length=0; // clear...
Dzień dobry Koledzy. Piszę kod w C#.NETMF dla STM32F429I-DISC1. Próbuję zrealizować takie działanie w którym wykorzystuję metody klasy UIElement. Jedna z metod obsługuje zdarzenie dotknięcia panelu dotykowego. Druga z metod ("Invalidate();") pozwala aktualizować treść wyświetlacza. Do tego mam timer który co sekundę generuje przerwanie inkrementujące...
Witam Mam pewien problem - obstawiam że banalny ale nie mogę znaleść rozwiązania od 2 dni ;-( Otóż mam czujnika MEMS z którego zbieram dane (najlepiej ok 256 pomiarów z jednej osi) i chcę je wgrać na kartę SD. Niestety coś jest nie tak bo nie działa to dobrze. tzn działa gdy danych jest mało np: MEMS1_to_SDCard (50) oraz char tText_x[500]; natomiast...
.A wszysko się zaczęło od itoa() .... Jak przyjdzie czas na na inne uC, to zobaczysz że nie ma takich wynalazków jak itoa();. Na przykład pisząc pod STM32 mogę się oprzeć tylko na tych podstawowych funkcjach zdefiniowanych w standardzie C. (non-standard function) Przykładowa konwersja integer na string z 12-bitowego przetwornika: char Wynik[11]="...
Witam, w ramach eksperymentu oraz wstępu do dalszych projektów, nagrałem kilka minut ruchu w sieci CAN podczas jazdy samochodem. Nagrałem to modułem na STM32 po SocketCAN. Teraz próbuję to nagranie przechwycić modułem na Atmega328 (16MHz) z MCP2515. Używam do tego bibliotek Arduino z https://github.com/coryjfowler/MCP_CAN_l... Wgrałem standardowy przykład...
Zmieniłem program i dodałem opóźnienia. Tak teraz wygląda funkcja wysyłająca dane (i grupujące je w bloki po 250 bajtów) w STM32: [syntax=c]#define MAX_TRANSFER = 250[/syntax] [syntax=c]void wyslijDane ( uint8_t *wskaznik_poczatku_danych, uint8_t *wskaznik_konca_danych) { uint32_t dlugosc_danych; //okresla liczbe danych do przeslania int calkowite_transfery...
Witam Mam problem z uruchomieniem USB w trybie HID. Oczywiście próbowałem zaprzęgnąć przykład od STM'a. Niestety bez skutku. Zasięgnąłem więc do manuala, straszna bieda i kiepsko opisane. Przeanalizowałem kod od STM'a i spróbowałem zrobić to u siebie. Niestety nic to nie dało. Szukałem w internecie i znalazłem przykład od KEILa. Niestety tak samo zakończyło...
Witam, otóż zasilam owy wyświetlacz napięciem ±3.3V, a także stany logiczne są na tym poziomie. Pin kontrastu jest podpięty bezpośrednio do masy, kontrast wizualnie wydaje się być dobrany idealnie. I problem w tym, że pixele bardzo wolno się zapalają.(wyszło mi ok. ~300ms na pełne zaświecenie pixela) Czy jest to jest maksimum wyświetlacza, czy...
Zainkluduj plik nagłówkowy <string.h>, tam masz prototyp tej funkcji.
O dzięki, przeoczyłem to. Zmniejszyłem opóźnienie o 1/3 bo F0 taktuje z 48MHz a F1 z 72MHz, ale nadal nic się nie wyświetla :( Dodano po 13 Z kolei na tym kodzie wyświetla znak zapytania:/ Niezależnie od tego co bym chciał aby wyświetlił. main: [syntax=c]#include "lcd_hd44780_lib.h" int main(void) { lcd_init(); lcd_writecommand(HD44780_CLEAR); while(1)...
Tak wygląda cała moja biblioteka: [syntax=c] #include "stm32f10x.h" #include "clock.h" #include "t6963c.h" //--------------------------------------... // Graphic LCD with Toshiba T6963 controller // Copyright (c) Radoslaw Kwiecien, 2007r // http://en.radzio.dxp.pl/t6963/ // Compiler : avr-gcc //--------------------------------------...
Co to znaczy, że jest legalne ? Zapis '1' jest dozwolony. Każdy string ma na końcu null terminator i trzeba o tym zawsze pamiętać.
Tylko co do rzeczy ma semihosting? P.S. Oczywiście powinieneś używać sscanf(), bo chcesz przerabiać gotowy string, a nie czytać ze strumienia FILE. No chyba że chcesz [; 4\/3!!
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...
Ale jesteś świadomy tego, że w każdych przykładach od ST, niezależnie od tego czy to F1, F4, L4 czy cokolwiek innego, jest dokładnie ten sam numer VID i PID? przykład dla F1: #define USBD_VID 0x0483 #define USBD_PID 0x5740 #define USBD_LANGID_STRING 0x409 #define USBD_MANUFACTURER_STRING "STMicroelectronics" #define USBD_PRODUCT_FS_STRING...
Kolejna linijka kolejne UB- Received to jeden bajt, Ty piszesz tam 5 nadpisując inne dane. Wiem, ze Received to jeden bajt. Chodziło mi o to ze wywoła się dopiero po otrzymaniu 5 znaków. CallBack nie do tego służy. To do czego? Masz UB jako że twoja dana ma jeden bajt a printf z parametrem %s oczekuje C stringu (czyli ciągu znaków zakończonego zerem)....
0. Deklaruję sobie globalnie: Na CRLF nie czekasz? Jeśli nawet ma to być łańcuch znaków to powinno byc miejsce na znak końca teksu w przeciwnym wypadku zapomnij o wykorzystaniu "string.h".
Dodano po 7 Ale kodu wynikowego nikt nie przegląda linia po linii, zwłaszcza jeżeli linii jest kilka tysięcy. Przecież stringi widać, a nawet się wyszukuje w byle edytorze ps. kod wynikowy nie ma linii. Dodano po 8 aha, jeszcze jedno. Nie myśl przez "plik hex". Plik hex jest tylko formą przejściową, w finalnym wyrobie się stanie daną binarną
Jest to przejściówka "Konwerter CP2102 Niestety nie mam takiej pod ręką to nie obadam jaki ma pull up. Próbowałem z DATA rezystor 480ohm do 3.3V ale nie działało. To według mnie zdecydowanie zbyt niska oporność, jak na obciążenie fototranzystora w transoptorze. Spróbuj coś koło 4,7 - 15kΩ. Od biedy można by spróbować uruchomić wewnętrzny pull...
50 kB na taki projekt to przecież nie jest jakoś specjalnie dużo. uyheeyeyyyyy, nie? 24kb na biblioteki (c) wydaje mi się dość sporo... wynik takiej oto komendy - `arm-none-eabi-nm -ClS --radix=d --size-sort tutaj-nazwa-twojego-pliku.elf` To bardzo fajna komenda, wklejam końcówkę bo Elektroda nie puszcza: [syntax=bash]536876876 00000001 B Appli_state/home/maciej/dron2/output//.....
Zasadniczo nie jest to możliwe, tzn. funkcja wysyłająca wygląda dobrze, problem jest gdzieś indziej. Masz dokładnie taki program, jak pokazałeś? Jak odbierasz i wyświetlasz?
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ź...
Mały krok do przodu. Udało mi się identyfikować co powoduje tak duże zużycie pamięci. Winowajcą jest biblioteka "Regular expressions library" <regex>. Na szczęście jest ona wykorzystywana tylko w jednej mało ważnej funkcji którą udało się zmodyfikować tak aby korzystała z <string> zamiast <regex>. Zajętość pamięci flash spadła ze 140kB...
Zrobiłem to bez przerwań. Program może nie działa idealnie (mam problemy z odbiorem znaków - jutro na tym się skupię), ale udaje mi się wysyłać at komendy do modułu (np. zmienić nazwę modułu, czy pin) oraz przesyłać stringi przez bluetooth na laptopa. Poniżej funkcja wysyłająca i odbierająca pojedynczy znak (w tym wypadku zrezygnowałem z bibliotek ST...
Providera? Nie rozumiem. Zawsze używałem Zylin, odkąd przeczytałem o tym w tutorialu Freddiego. ;) Program na pewno wgrywa się prawidłowo. Sprawdziłem ST-LINK Utility na Windows. Chyba masz rację z tymi symbolami debugowania. Ale to jest dziwne bo mam -g przy kompilacji: /home/(...)/arm/gcc-arm-none-eab... -mcpu=cortex-m3...
Występuje wyjątek bo nastepuje dostęp RW do pamięci flash ktora jest tylko do odczytu a wszystkie stałe umieszczane są bezpośrednio we flash. Najprościej do funkcji dodać jeszcze jeden argument ze wskaźnikiem na bufor wyjściowy. [syntax=c]char *STRING_DeleteStr(char * dst, const char *string, const char *del, u8 mode)[/syntax]
Czy nie jest przypadkiem tak, że do Twojego pliku S tring.c masz swój własny nagłówek S tring.h? Bo jeśli kompilujesz to na Windows, to niestety ten nieco ułomny system nie widzi różnicy między Twoim S tring.h a s tring.h z toolchaina, linijka "#include <string.h>" dołącza tak naprawdę Twój plik S tring.h, w którym tej definicji nie ma, no i taki...
Witam, Niestety poddaje się bo nie wiem czego mi brakuje w kodzie albo co robie nie tak. Nie moge odebrac na komputerze zadnego komunikatu z plytki DEV. Kontrolka na USB - USART swieci się od RX czyli cos jest nadawane (ciagle swiatlo) ale nic nie odbieram Załączam poniższy kod w celu debuggingu: #include <string.h> #include "stm32f4xx.h"...
Dodając na koniec wskaźnik na ten twór to: const char * const (*string)[]; Dzięki i pozdrawiam
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...
Tak więc nie potrafię tego rozwiązać. Jeśli ktoś tu trafił bo szukał odpowiedzi na ten temat, to polecam zrobić coś takiego : [syntax=c] # define PRECISION 8 char* floatToString(float num) { int whole_part = num; int digit = 0, reminder =0; int log_value = log10(num), index = log_value; long wt =0; int i; // String containg result char str[15]; //Initilise...
Dzięki za odpowiedź. Ok, w takim razie wyjdźmy od przykładu Show_Char_7, który dostałem do płytki testowej i który wydaje się działać. Tak wygląda lcd.h: [syntax=c] #ifndef __lcd_h__ #define __lcd_h__ #include "stm32f10x.h" extern unsigned char const ascii_8x16[]; #define Bank1_LCD_D ((uint32_t)0x60020000) //disp Data ram #define Bank1_LCD_C ((uint32_t)0x60000000)...
Witajcie, mam problem z HID-em w STM32F103VB. Chce wysłać więcej bajtów niż, jeden tak jak jest to w przykładach do stm-a. Interesuje mnie transfer z PC->STM. Mój problem polega na tym, że po skonfigurowaniu mikro kontrolera i próbie wysłania pakietu za pomocą SimpleHIDwrite, program wypisuje mi komunikat: "WRITE ERROR: Urządzenie dołączone do komputera...
1. const char * const str1 = "string numer 1"; const char str2 const char* text);`.
Chodzi mi o umieszczeni np: static const uint8_t myArray[] = "taki sobie string"; we FLASH ale gdy się nigdzie tego nigdzie nie użyje. Żeby kompilator umieścił to we FLASH to muszę to gdzieś użyć.
PS. Mam nadzieję, że nie rażę nikogo zwrotem "kolego". Szanowny kolego gaskoin. Najwyraźniej my nie czytamy swoich postów na wzajem. Szanowni koledzy. Problem mam z wysłaniem z kompa i odebraniem w uP. Bo nie wiem jak zrobić poprawnie jedno i drugie. Padło pytanie: jak to wysyłam? Łańcuch czy coś.... otóż nie wiem - bo z tym mam też problem. Jeżeli...
Witam, Podłącze się pod watek. Korzystam z tego samego kodu ze strony: http://www.stm32.eu/node/66 Jedyna zmiana w kodzie jest WakeUP_PIN. Procek STM32F103VET6. Mam następujący problem: Po uruchomieniu softu, w pliku boot.c w funckji boot_force jest warunek: [syntax=c]if(MSM_GetNumInstalledDevices(... { boot_process(MSM_GetDeviceByID(0)->strin...
Nie, że fanaberia. Ale po co tworzyć CRC tylko dla stringów. Nie rozumiem. W moim przypadku ten string to będzie zestaw zmiennych liczbowych, które wysyłam do PC. Zmienne będą oddzielone znakiem średnika. Myślę, że CRC jest właściwym rozwiązaniem, żeby zabezpieczyć się przed błędami w odczytanych danych? Chyba, że masz na myśli coś innego. CRC dla...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
Kolega ma problemy z podstawami C. Z jakich elementów składa się string ? Nie odróżniasz zmiennych od wskaźników i tego co chcesz uzyskać, rzutowanie w ogóle bezsensu. Jak odpowiesz na pierwsze pytanie może przejdziemy dalej. Dlaczego nie chcesz użyć itoa jeśli w ogóle posiadasz tą funkcję w stdlib ? Musisz przygotować string z wynikiem temperatury,...
stm32 string flash stm32 usart string growat string
ekspres krups ea9000 dlaczego przybywa oleju anteny offset
uziemienia pompy cyrkulacyjnej bosch smv46mx03e
Fotowoltaika: 7x420W, zacienienie, szereg – ile zyskam po przełożeniu panelu? ELZAB FP-600 głowica CITIZEN DP-600 i TPH 203 dpi – objawy, czyszczenie, wymiana