To nie są problemy Bascoma, w bascomie można wiele rzeczy szybko zrobić, tylko jak ktoś go nie zna to najłatwiej i naszybciej jest na niego psioczyć i wylewać swe żale. ale ok, skoro ty (o ile dobrze zrozumiałem) w jakimś tam przerwaniu wysyłasz coś poleceniem PRINT przez łącze RS232 a następnie w tym samym przerwaniu czekasz na odbiór przez RS232 (waitkey)...
204
Port com po każdym zgłoszeniu zdarzenia zwróci pojedynczy bajt - to ty musisz te bajty jakoś połączyć np w tekst. Tak tutaj miałem błąd. No dobra, a CO W NIM NAPRAWDĘ jest ? Może kuuuuuupa bajtów zerowych albo czegoś podobnego, XON/XOF itd Jak się okazało, kolega ma rację. RichTextBox mam pusty, ale port RS232 odbiera też jakieś różne znaki co powodowało...
Raport z postępów: brak ;P (chociaż rozgryzłem to haszowanie częściowo - w programie easyhash pod nazwą crc-16(x25) - nie moge tylko zmusić swojej funkcji żeby poprawnie hashowała - nie jest podany wielomian haszujący...) o adapterze: Adapter który posiadam kupiłem gotowy na allegro, schemat: jak z tego wybrnąłem? układ FTDI232R może pracować w trybie...
Zauważyłeś, że masz odzielne zmienne 'i' i 'bit_rx' w funkcji obsługi przerwania, niezależne od globalnych, na których działa main()?
Na procesorach bez wsparcia sprzętowego dla USB jego uruchomienie jest bardzo trudne i nieefektywne, a osiągane transfery są żałosne. USB jak każdy złożony protokół składa się z kilku warstw - interfejs sprzętowy zapewnia realizację warstwy elektrycznej i łącza, wraz z podstawowymi elementami wymiany danych - odbiór i nadawanie pakietów, enumeracja...
chcę zrobić coś takiego że: pętla główna do 'jakieś działania zajmują czas różnie od 5min do 1 godz. ' i tu dopiero by było odbiór rs232 - to ZŁE bo aplikacja będzie oczekiwała 1godzine aż ' uC się zgłosi!!! loop jest stała i ciągle oblicza jakieś wartości i nie mogę jej zatrzymać. Jak zrobić przerwanie od odebranego znaku z uart'u
Dzieki za odpowiedź - czyli procesor jest "nieczynny" przez czas odbioru 1 znaku , czyli (1/115200) *10 ? Dane z encodera też odbieram w przerwaniu. A mam pytanie, czy jeżeli wysyłam dane np tak: printf"ala ma kota"); to czy przez ten czas wysyłki procesor jest zablokowany?
Oczywiście miało być 100,10,1. Dzięki za poprawkę, ale to i tak nie ma żadnego wpływu na moje echo, które nie zachacza o transmisję. Generalnie jedna ramka ma: 1) pierwszy znak rozpoczynający odbiór '?' 2) znak 1 i 5 są znakami + lub - w zależności, czy liczba jest ujemna, czy dodatnia. 3) znaki 2,3,4 to liczba 3-cyfrowa, znaki 6,7 to liczba 2-cyfrowa...
Witam, Udało mi się obsłużyć port COM za pomocą Buildera. "Rozmawiam" sobie z urządzeniem i wszystko pięknie chodzi. Odbieram dane w komponencie MEMO pracującym w timerze (100ms). Efekt takiego odbierania jest taki że to co przyjdzie z zewnątrz jest cięte na fragmenty. Jak zrobić żeby linijki w memo dodawały się kiedy z zewnątrz przyjdzie np znak nowej...
Najlepiej zacznij przesyłać takie dane w postaci znaków ASCII i to najlepiej w postaci HEX, dzięki czemu będziesz mógł stosować normalny koniec linii w postaci znaku ENTER a dzięki temu z kolei o wiele łatwiej będzie ci zaimplementować odbiór danych przez RS232 (podobnie wysyłanie) A jeśli się uprzesz przy wysyłaniu takich danych binarnie to zaintersuj...
WItam; chciałbym zrobić sterownik który będzie pełnił funkcję konwertera prędkości UARTU. Na wejściu otrzymuję ramki GPS 9600, a na wyjściu chcę wysłać to samo tylko w nieco innym standardzie (eleminacja niepotrzebnych danych. Zrobiłem w przerwaniu RXC odbiór ramki. Działa super. Robię konwersję. I chcę to wysłać znów przez RS232. Całość mam w Stringu...
Witam. Tak jak w temacie, lecz nie znam wyprowadzeń a wtyczka jest typu DIN7 z pinem w środku. Typ ten jest nie do zlokalizowanie a przewodu 'oryginalnego' nie można już dostać. Tak więc muszę podpiąć się do płyty głównej. Proszę o podanie standardowych układów obsługujące transmisję bym mógł je zlokalizować na płycie głównej i rozpracować wyprowadzenia.
witam wszystkich Proszę o pomoc w oznakowaniu wyjść z przejściówki na układzie PL2303. Na foto prawdopodobnie oznaczyłem już kilka pinów. Niestety jest to najgorsza wersja ala "pozytywka" i nie wiem jak sprawdzić czy to co już jest oznaczone jest prawidłowe i jak wybadać pozostałe sygnały. Nie mam wiedzy ani sprzętu ale mam chęci, komputer i właśnie...
Program ma wykorzystywać przerwania, czy poniższy fragment kodu jest dobry? Dobrze rozumiem, że on jest zarówno dla slave i dla master? org 0 sjmp st org 23h ; adres obsługi przerwan w pamieci programu dla portu szeregowego: 0023h ajmp seriali st: mov tmod, #20h ; tutaj mam wątpliwości dlaczego 20h? mov th1, #0fah ; 9600bound setb sm1 ; tryb...
Przykłady parsowania danych tekstowych masz w helpie - keyword reference - string. Np polecenia typu LEFT, MID, RIGHT itd. wraz z opisem działania masz przykłady. Do Bufor = Ischarwaiting() 'Sprawdz czy cos jest w buforze If Bufor = 1 Then Waitms 250 Gosub Odczytaj_sprzetowy_uart 'Jesli jest to odzcytaj Oblicz Cls Locate 1 , 1 Lcd Dane; Locate...
Mam do zroibienia projekt o tematyce: Napisać program umożliwiający odbiór oraz nadanie danych przez RS232 podłaczonego do komputera PC. Program nadajacy powinien odbierać cyfry wpisane na klawiaturze PC i wyswietlać je po koleji na 8 wyswietlaczach siedmiosegmentowych. Po zapełnieniu 8 wyswietlaczy dane znikają i kolejne cyfry zapisywane sa od poczatku...
Rozwiązanie do wykorzystania w przypadku posiadania dodatkowych urządzeń, które nie muszą pracować jednocześnie, podłączane do portów szeregowych RS232. Jedyne co trzeba zapamiętać z tego schematu, to jakie linie przełączać a jakie mogą być bezpośrednio podłączone. Linie, które powinny być przełączane za pomocą jednego przełącznika: RXD, RTS, TSD, CTS....
Witam Potrzebuję prostego urządzenia w którym byłyby 3 przyciski (takie jak pod klawiszami w myszach). Urządzenie podłączane przez rs232 do komputera i w zależności od naciśniętego przycisku wysyłałoby na COMa znak, np. po naciśnięciu przycisku 1 znak '1', 2 znak '2' itd. Czy ktoś mógłby się podjąć zrobienia takiego urządzenia ? Ewentualnie ktoś coś...
Mój układ sygnalizuje przerwanie obwodu zgaszeniem diody (przez cały czas dioda się świeci dopóki, obwód nie zostanie przerwany), chciałbym móc te 'przerwania' rejestrować na komputerze poprzez łącze RS232. Jednakże pomiędzy komputerem i podłączonym do niego kablem RS232, a tym układem COŚ musi się znajdować, coś co przetworzy te impulsy na język zrozumiały...
Mam taki problem : jest urządzenie które komunikuje się po RS-232 z komputerem. Znam parametry transmisji (prędkość, bity danych itp. - od producenta) Zrobiłem urządzenie do podsłuchiwania transmisji ( taki RS232 sniffer -był gdzieś na elektrodzie). Problem jest taki że jedyne co odbieram to "krzaki". Zakładam, że parametry transmisji producent podaje...
Witam, od kilku dni walczę z tą nieszczęsną transmisją szeregową. Uprościłem kod niemalże maksymalnie. Jedynie odbiór znaku z terminala i odesłanie go. Aczkolwiek wciąż coś jest nie tak. Mianowicie powracający znak do terminala nie pokrywa się z wysłanym. Z analizy binarnej wygląda mniej więcej na coś takiego, że podczas odbioru znaku przez mikrokontroler...
Przerwanie zostanie wykonane tylko wtedy gdy nadejdzie nowy znak. W innym przypadku będzie się wykonywał program główny. Jeżeli został odebrany znak to procesor wchodzi w przerwanie, gdzie następuje odczyt UDR i wpisanie go do twojego bufora. [kod] SIGNAL(SIG_UART_RECV) { bufor = UDR; // odczyt znaku } [/kod] Następnie procesor wychodzi z obsługi przerwania...
Szukam gotowych urządzeń lub schematów układów RS232 - podczerwień - RS232 do transmisji dwukierunkowej. Mam komputer i program który komunikuje się z innym urządzeniem. Chciałbym się dowiedzeć gdzie mógłbym kupić taki układ: do COM1 podłączam coś co konwertuje mi na podczerwień sygnał wysyła i do odbiornika podłączam urządzenie odbierające ten sygnał....
Witam Chciałbym prosić o jakiś prosty schemat układu który po naciśnięciu przycisku zmienia stan pin DSR na wejściu com w komputerze Za wszelkie wskazówki dziękuje :)
Jeśli nie chcesz zawieszać procesora to rób odbiór w przerwaniu i w formie bufora kołowego. Dodano po 47 Kolego na szybko napisałem Ci taki przykład obsługi takiego przerwania. Zakładam że znasz zasadę działania bufora kołowego bądź jesteś w stanie sobie doczytać w necie jego działanie. [syntax=asm] .dseg rxbuff: .BYTE 16 //bufor kołowy na odebrane...
Witam, Jak sprawnie odebrać dane bajty lub znak ascii z przedziałów: - 1..32 - 126..255 Gdyż program sprawuje się rewelacyjnie i NIEZAWODNIE jak odbieram tylko znaki z klawiatury, a ja chcę przesłać z PC do uC ok 1MB danych z zakresu Bajt = 1..255 Rozwiązanie jakie jest poniżej - rewelacja! Lecz moja ramka danych jest 128bajtowa i docelowo 128bajt jak...
Witam mam pewien problem z napisaniem programu majacego za zadanie przechwycenie a dokladnie wyciecie kilku znakow lecacych po RS232 (powiedzmy bloker :D ) sprzetowo ma to wygladac tak dana wchodz na RX uP i po modyfikacji wychodza TX-em .zastanawialem sie nad buforem ale mnie specjalnie wiem jak go zrealizowac Pozdrawiam
Google są wielkie znalazłem i dziękuję wszystkim cierpliwym za pomoc A w załączniku opis dla tych co będą szukać po mnie Jednak polecenie InStr nie znajduje w odebranym ciągu znaku którym oddzielam poszczególne dane tak jakby się się opróżniał i zachowuje się z niego tylko ostatni kawałek. Proszę pomóżcie mi to zrozumieć Polecenie dana= MSComm1.input...
Tak skrótowo : Mam urządzenie z którym komunikacja jest przez RS485 . Zrobiłem konwerter 232/485 .Program do komunikacji jest w Pascalu. I tak :mówię sobie" sprawdzę co program wysyła i odbiera , wyślę sam do siebie zapytanie . Połączyłem pin 2 i 3 RSa i jazda. Ponieważ UART jest 16550A to ma bufory FIFO więc je załączyłem żeby wysłać całe zapytanie...
Witam wszystkich! Dostałem od znajomego przejściówkę USB<-->RS232(tu wtyczka jest urwana). Wychodzą z niej takie kolory(kabli): czerwony, pomarańczowy, niebieski, biały, czarny, brązowy. Domyślam się tylko że czarne to masa. Ja potrzebuję jeszcze pinów TX i RX. Pytanie: Które to będą kolory? na ubuntu sprzęt rozpoznawany jest tak: [ 87.080074]...
Męczy mnie ten fakt, że jak go uruchamiam i jest zasilony to początkowo dane idą elegancko, wysle i odesle tez dobrze, dopiero drugie wysłanie paczki danych i odbiór się sypią. Tak naprawdę to nie wiesz, czy problem leży po stronie odbiorczej, czy nadawczej. Być może odczyt flag FE0 (w szczególności) oraz DOR0 z rejestru UCSR0A pomoże zlokalizować...
Witam, Mam problem, mianowicie gdy nadaję z PC do procka np. znak "1" to otrzymuję "11" dodam, że odbieram w przerwaniu. Konfiguruję USART w stm w następujący sposób: [syntax=c]void USART_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; USART_ClockInitTypeDef USART_ClockInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GP...
Witam; Korzystając ze schematu: http://obrazki.elektroda.pl/6433983700_1... zaprojektowałem w Eagle płytke. Kondensatory:C7, C9, C10 i C12 maja po 10uF, C11 470uF a C13 ma 47uF. Wszystkie elektrolityczne. Korzystam z przejściówki RS232-USB. Program sciagnąłem ze strony producenta. Może ktoś sprawdzić projekt i powiedzieć dlaczego nie...
Witam, Pracuje nad projektem, który zakłada zapisywaniu danych przesyłanych między panelem dotykowym firmy ifm CR1082 a drukarką Epson (model TM-T88V). Panel i drukarka połączone są przez port szeregowy. Zrobiłem tzw. sniffera na RS232 i przez przejściówkę UART-USB łapię ramki danych na PC (program Serial Port Monitor). Działa to na takiej zasadzie,...
Witam! Czy istnieje układ scalony dzięki któremu rozdzielę Tx i Rx mikrokontrolera na kilka urządzeń? Myślałem o użyciu multipleksera z 4 na 1 oraz demultipleksera z 1 na 4 lecz wolałbym zrobić to w jednym urządzeniu.
witam Na procku at90s2313 zrobilem odbieranie na LCD znakow z terminala oraz z powrotem wypisanie znaku na terminal, na LCD wszystko jest prawidlowe ale na terminalu wywala co jakis czas smiec ,co jest przyczyna?
Cześć, Ostatnio na YT zobaczyłem filmik dotyczący standardu RS232 - nic specjalnego poza jednym co mnie zastanawia. Pełna specyfikacja portu RS232 mówi o złączu DB25 które posiada 2 kanały transmisji , odbioru i sygnał zegara wraz z egzotyką taką jak "sygnał jakości". Ciekawi mnie czy ktoś z forumowiczów miał z czymś takim doczynienia i czy np obecne...
Witam Potrzebuje przerobić kabel od skanera kodów kreskowych z Ps/2 na RS232.Proszę o rozpiske lub zdjecie.Skaner to IT3800
Chciałbym prosić o pomoc w wykonaniu konwertera sygnałów pochodzących z cyfrowego miernika na postać standartu RS232. Sygnały od/do miernika wysyłane są równolegle po 48 liniach transmisyjnych. Najlepszym rozwiązaniem byłby układ mikroprocesorowy - z którym niestety nie mogę sobie poradzić :( Program do sterowania i czytania wyników wykonam sam - Delphi...
Witam, mam problem z komunikacją z modułem BTM-222 z zestawu ATB-BTM który zasilam +5V z USB. Mam przejściówkę USB-RS232 z połączonymi pinami 7-8 i 6-4. Połączyłem na krzyż przewody Rx i Tx. Zrobiłem dwa testy: 1. Po podłączeniu BTM przez RS232 włączyłem terminal (próbowałem Putty'ego i Br(at)y'a ++) nasłuchując na porcie i wyszukałem bluetooth telefonem....
Szanowni Koledzy, mam problem z połączeniem szeregowym pomiędzy PC a układem SIGMA DESIGNS SMP8643. Na terminalu wyskakują krzaki nie zależnie od tego z jaką prędkością się z tym krzemem łącze. Zminimalizowałem wpływ czynnika długości przewodów (choć standard pozwala na 15m) skracając je do 19cm. Próbowałem podłączyć się przez twardy port w PC, a także...
Mam problem z wysyłaniem sms, wykorzystuję atmege128 i moduł sim900 na płytce Evb v1.01_pcb , proszę o rzucenie okiem na kod gsm.c [syntax=c]// PLIK: gsm.c // Dołączone biblioteki #include <avr/io.h> // Biblioteka obsługująca peryferia mikrokontrolera #include <avr/interrupt.h>// Biblioteka obsługująca przerwania mikrokontrolera #include...
oto moja obecna aplikacja "napisana" na podstawie innych programów przykładowych. Po kliknięciu w button pojawia mi się wartość w wybranym okienku i jest OK. Jednak gdy klikne kolejny button (w celu odczytania drugiego pomiaru) zaczynają się schody. Pojawia się najpierw wartość pomiaru 1 a dopiero po 5 kliknięciu wartośc z pomiaru nr2. czy to wina buforów...
Być może wykonałem zbyt duży skrót myślowy w tym temacie za co przepraszam. Oczywiście bazowanie na timeout-ach oznacza że timeout-y mają wyższy priorytet w ustalaniu poprawnej transmisji. Co to oznacza: - nadajnik wysyła daną i włącza timer ustawiony np. na 10ms. oczekuje na potwierdzenie wysłania, jeśli otrzyma to ok. (potwierdzenie może zawierać...
Potrzebuje pomocy w napisaniu wsadu do mikrokontrolera w c++. AtTiny2313 po odebraniu 2 znaków typu char z portu RS232 (16 bitów) ma wysłać je do podłączonego generatora AD9833. Schemat jest w dołączonym pliku. Głównie chodzi mi o to, żeby na wyjściu PB1 mikrokontrolera był stan wysoki lub niski, kolejnych 16 przysłanych bitów. Kolejność odczytów bitów:...
Przepraszam że dawno nie odpisywałem, byłem trochę zajęty (i w pracy druga zmiana). Po stronie uC to narazie wygląda to tak: [syntax=basic4gl] 'Drugi program do testòw 04.12.2013 $crystal = 8000000 $baud = 19200 $regfile = "m32def.dat" $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 'default use 10 for the SW stack $framesize...
Witam. Mam problem. Napisalem program do wysylania danych przez RS z plytki ZL10AVR z mikrokontrolerem ATmega32. Dodatkowo w programie LabView na PC zrobilem odczyt jak i wysyl danych. Na dzien dzisiejszy program dziala tak, ze po wcisnieciu odpowiedniego przycisku na klawiaturze 4x4 wysylana zostaje odpowiednia dana (np: "1"). Na PC LabView odbiera...
chciałbym wykorzystać Dim Bufforek As Char = SerialPort1.ReadLine() i teraz coś takiego że od pierwszego znaku uzależnia wyświetlanie w textboxie if Bufforek Dodano po 1 Doszedłem do tego że problem tkwi w tym,że układ zapamiętuje poprzednie próbki z RS232 tak jakby zapisywał je gdzieś do pamięci - nie są to próbki czasu rzeczywistego..
$crystal = 8000000 $baud = 9600 Config Lcd = 40 * 2 Config Serialin = Buffered , Size = 20 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Enable Interrupts Dim Command As String * 1 Dim Temp1 As Integer Dim Temp2 As Integer Dim Status As Byte Dim Numer As Byte Temp1 = 12.1 Temp1 = 30.1...
Witam Wszystkich. Mam problem z obsługą zewnętrznego przetwornika ADC. W swojej pracy chcę zastosować 12bit przetwornik MAX1270 (link do dokumentacji http://obrazki.elektroda.net/19_12175004... Udało mi się zrobić komunikację poprzez RS232 jak i transmisję przez SPI. Problem polega na tym, że wyskakują błędne wartości, np. jeśli ustawię przetwornik...
Naniosłem poprawki do kodu, nie mam jak sprawdzić komunikacji diodą, bo nie mam jak się z nią podłączyć (przynajmniej nie wiem jak to zrobić). Zmieniłem przejściówkę USB-RS na kabel RS-RS z crossowaniem, ale wydaje mi się, że jest jeszcze gorzej, bo teraz po podłączeniu kabla nie zapala się dioda odbioru przy porcie, która przy przejściówce zapalała...
Sam ostatnio z tym się bujałem z tym, że używam FLTK... Generalnie tryb OVERLAPPED jest upierdliwy i mi to do d... to działało... Trzeba pamiętać o tym, że funkcje odczytu/zapisu wracają natychmiast niezależnie czy odczytały cokolwiek czy nie potem to już zabawa z flagami, events itp, itd... Do odczytu, jeżeli już faktycznie coś zostało odebrane, używasz...
Przestaw terminal na odbiór znaków ASCII. Program jest OK.Dane też.
W AVR GCC używam czegoś takiego.
Przy instrukcji Input "odebranie znaku <CR> (kod 13) kończy wprowadzanie danych dla bieżącej zmiennej." A co jeśli znak <CR> nie zostanie nadany? Wtedy program stoi i czeka!
Po co ci takie wielkie bufory ilku bajtów. Bufor wyjściowy Serialout jest nie potrzebny. Zakomentuj go (i to już może Ci od razu pomóc). Zamiast flushbuff możesz spokojnie napisać Clear serialin Proponuję też przejść na odbiór tego znaku w przerwaniu za pomocą Config serialin z opcją BYTEMATCH=ALL Poczytaj na temat tej opcji w helpie (angielskim)
Jest wiele sposobów. Możesz na przykład przepisać znaki od przecinka do końca buforu w drugi bufor pomocniczy i wówczas użyć funkcji atoi. PS. zamykasz stringa znakiem zerowym? ;)
Rozumiem że zakomentowałeś, zamykanie i otwieranie portu podczas wysyłania oraz linie InputData = serialPort1.ReadExisting(); "Odepnij" to zdarzenie DataReceived i dodaj dla testów jeszcze jeden Button i daj tam: string data = serialPort1.ReadExisting(); ReadLine() czeka na znak nowej linii, może przesyłasz "cos", a nie "cos\n"?
Tu masz odpowiedź: http://pl.wikipedia.org/wiki/Tablica_asc... Znaki tekstowe zaczynają się od 0x20h a te wcześniejsze są po prostu zastępowane kwadratami
Na razie to mi działa tak, że muszę celować z prawidłowym rozpoczęciem nadawania i odbioru. Jedynie odpowiedni protokół transmisji rozwiąze ten problem, trzeba zrobić jakieś sygnatury startu danych.
Oto Twój program po zoptymalizowaniu i usunięciu zbędnych (dla tego przypadku) linii , powinien działać, a więc po odebraniu znaku zapalić diodę. bsf STATUS,RP0 clrf TRISB ;PORTB - wyjscia movlw .51 ;baud rate 1200 / 4MHz movwf SPBRG bcf STATUS,RP0 bsf RCSTA,CREN bsf RCSTA,SPEN clrfPORTB ; wyzerowanie portu btfss PIR1, RCIF ;bit 2 nie 5 goto $-1 ;czeka...
Tak wiem ale to jest moje zadanie do szkoły... i musze to oddać po nowym roku :/
Khmmm, po pierwsze to niech kolega docelowo zrobi obsluge odbioru na przerwaniu, ale narazie to nie ma znaczenia. Po drugie :> zalezy z jaka czestotliwoscia wysylasz znaki. Bo jesli z komputera kazesz mu wyslac od razu caly ciag, a w programie kazesz mu po kazdym odebranym znaku odczekac 200+200ms to kazdy znak ktory przyjdzie w tym czasie zostanie...
Zastosuj bufor: Config Serialin = Buffered , Size = 100 enable interrupts A oczekiwanie na znak zrób: Bufor_flaga = Ischarwaiting() : If Bufor_flaga = 1 Then Gosub Odbierz_uart Następnie procedura odbioru danych: Odbierz_uart: Bufor = "" Do Bufor_znak = Inkey() Bufor = Bufor + Chr(bufor_znak) Bufor_flaga = Ischarwaiting()...
Buffer_I="" - czy to przypadkiem nie przeinicjuje wskaźnika zmiennej?
Kolejne pytanie: Jeśli chcę odebrać kilka znaków z klawiatury to powinienem wpisać to w jakąś tablicę? Jeśli chcę wysłać do PC cały wyraz to jak to robić? Możesz to zrobić różnie. Zależy czego potrzebujesz i na ile jesteś wprawny w programowaniu w C. W każdym z przypadków trudno jednak będzie się obyć bez tablic dla ciągów znaków odbieranych i wysyłanych....
pewnie piszesz w bascom ,wiec masz kod odbierania danych (całych stringów ) w przerwaniu :) : Config Serialin = Buffered , Size = 20 do If Ischarwaiting() = 1 Then '1 - odebrano znak,0 - pusty bufor Call Read_rs232 End If loop Sub Read_rs232 Dim Bufor As String * 24 Input Bufor Noecho end sub
Tak w Bascomie istnieje idealny sposób aby rozwiązać odbiór znaków przez RS232 (także nadawanie) - za pomocą przerwań. A kod zajmie kilka linijek. Wystrczy zapoznać się dogłębnie z takim poleceniem jak Config Serialin oraz wykorzystaniem np jednego z parametrów do tego polecenia - Bytematch (ale także innych) wtedy przy minimum wysiłku i kodowania będziesz...
Co znaczy, że program przestaje działać? Puszcza dym, czy co? Nie uzyskujesz żadnej odpowiedzi na terminalu? Trudno powiedzieć jak jest zbudowane getc, może w nim jest problem. uart_puts na pewno wysyła łańcuchy, a nie pojedyncze znaki? Wysyłając przez terminal znaki być może końcone są one znakiem \n lub CR LF, których nie odbierasz. Być może to bruździ...
bascom odbiór znaku odbiór rs232 rs232 odbiór danych
wyzerowanie dysku sterownika pompy centralnego włosów rozebrać
blaupunkt limited bialoruśka wymiana pompy
Optymalna odległość konwertera od czaszy 110 cm Zasilanie Arduino GIGA R1 WiFi z ogniwa 18650