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...
Portu com nauczylem sie sterować z ksiązki RS232C Andrzeja Daniluk-a (Helion) Jednak to za mało nie mam tam wszystkiego jest tylko jak odbierać znaki liter, znaki sterujace i tu mam zonka. Otóż Mikrokontroler odczytuje bajty z zew pamieci i wysyła je przez rs232 do komputera i tu mam problem, gdyz wysyłanie jest bardzo szybkie i wysyła wszystkie mozliwe...
Witam, Wykonałem sobie prosty program w Codesys w ST do odczytu danych z urządzenia po RS232. Ogólnie rozwiązanie działa choć nie jest optymalne. Chodzi głónie tu o odczyt całej ramki z RS232 a więc ramki która zaczyna się od znaku <STX> a kończy znakiem <ETX>. Poniżej moje rozwiązanie: [syntax=c] ////////////////////////odbieranie danych...
Mam prośbę do szanownego grona forumowiczów, otóż bardzo proszę o kod źródłowy programu, nadającego i odbierającego dane przez rs232, może to być najprostszy programik z nadawaniem i odbiorem powiedzmy tylko znaku. szukam i szukam, próbuje wykombinować coś sam już cały dzień i zabrakło mi cierpliwości więc proszę Was o pomoc. Najlepiej będzie jeśli...
Witam :) Spotkałem się z problemem podczas odbioru danych z RS232. Sam odbiór danych (WinAPI) odbywa się w wątku. Wątek odbiera dane tylko są nimi śmieci na zmianę 'w' i '~'. Dane wysyła AVR i są nimi kolejne znaki alfabetu (bez polskich znaków). Dane wysyłane przez avr są poprawne (testowane na terminalu) Poniżej ustawienia portu: SetupComm(fd,...
Witam robie komunikacje AVRa z PCtem. chcę zacząć od napisania programu w builderze do odbioru paru znaków. Ze strony AVRa wszystko gra wysyłam napis, sprawdzane w hyperterminalu wszystko OK. Ale teraz za bardzo nie wiem jak to zrobic w builderze. Korzystam z książki "RS232C - prog. praktycze". Chciałbym aby mi ktoś wytłumaczył na chłopski rozum jak...
Witam Państwa, Projektuję układ do sterowania silniczkiem w Proteusie. Wcześniej udało mi się sterować nim przez klawiaturę podłączoną do układu. Teraz natomiast chciałbym odbierać sygnał przez port rs232. Program do nadawania jest napisany w C# i działa prawidłowo, jednak na terminalu w Proteusie np. przy wysłaniu E7 dostaję znak "ç", Przy wysłaniu...
No ale VMIN mam ustawione na 1 co wg dokumentacji zmieni, że funkcja read czeka aż do momentu odbioru znaku.
Witam. Jeśli chodzi o DOS to ściągnij sobie RBIL ("Ralf Brown's Interrupt List"): Poszukaj przerwania 14h, i przyjrzyj się funkcjom: 00h - inicjalizacja portu, 01h - wysłanie znaku, 02h - odbiór znaku, 03h - odczyt statusu portu. Dokładny opis w RBIL'u - niestety po angielsku, Opis powyższych funkcji oraz rejestrów UART'u w języku polskim możesz znaleźć...
Witam. Chce stworzyć aplikację która będzie działała jak terminal portu COM, czyli możliwe będzie wysyłanie i odbieranie danych. Stworzyłem taki program (kod zamieszczam poniżej). Odbiór i nadawanie umieszczone są w oddzielnych wątkach. Problem jest taki, że po uruchomieniu programu odbiór znaków (danych) działa poprawnie, natomiast nadawanie nie działa...
Witajcie Przeszukałem forum w poszukiwaniu takiej informacji jednak nieznalazłem nic satysfakcjonującego. Otóż chodzi mi o to, gdy wyśle poprzez RS232 do telefonu - powiedzmy komende AT o treści "at+csq" co oznacza pytanie o jakość syganłu oczekuje odpowiedzi o treści naprzykład "+COPS: 0,0."ERA GSM"". Wysyłanie komendy mam zrobione - działa (sprawdzone...
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, Dziękuję za poprzednie odpowiedzi. Problem jest trochę inny, jednak pasuje do tematu. Na ATmega328p przy wysyłaniu znaków i odbieraniu przez terminal pokazują się inne znaki niż wysyłam, na LCD całkiem krzaki. Przy zmianie kodu znaku na liczbę wypisywane są zawsze 2 liczby np. Dla q wypisywane jest 6 i 254. Problem jest przy odbiorze znaku i...
Witam forumowiczów Elektrody :) Trudno mi powiedzieć, czy prawidłowo zdefiniowałem w temacie problem (raczej nie), bo w gruncie rzeczy nie wiem, dlaczego mój program zachowuje się w taki sposób. A oto jak się zachowuje. Opis działania programu: Odebrany z interfejsu UART pojedynczy znak odbij natychmiast z powrotem. Czyli takie echo "nielokalne". Efekt:...
dzięki za pomoc... niestety mimo tych korekcji to nic nie dało;( faktyczne wcześniej miałem źle wyliczone SPBRG, teraz korzystam z konwertera z . Posługując się z kolei stronką wybrałem 2400BPS i SPRG mam 25 Według datasheet' RCIF jest jako bit5, teraz w sumie i tak pisze zamiast btfsc PIR1,5 btfsc PIR1,RCIF I nadal nic... dopowiem jeszcze ze do wysyłania...
Witam, jak na razie udało mi się zrealizować funkcję odbioru/wysyłania po rs232 w VB. Odbiór realizuję w taki sposób: Private Sub serial_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventA... Handles SerialPort1.DataReceived Dodanie = SerialPort1.ReadExisting RichTextBox2.Text = RichTextBox2.Text + Dodanie...
Przepraszam - jakoś "krzywo" spojrzałem i byłem przekonany, że chodzi o D1 :) Dioda D2 powinna sygnalizować odbiór danych na linii RS485. Jeśli po stronie RS485 (czy tutaj raczej RS422, bo układ może pracować w pełnym duplexie) nie masz nic podłączone, to na pinie 2 MAX490 masz stan spoczynkowy TTL, czyli wysoki. Powoduje to wysterowanie transoptora...
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...
Witam, mam problem ze znakiem "$", jest mi on potrzebny do odczytu ramki NMEA. Jak widać poniżej inne znaki działają. Specjalne także, oprócz # i $. Wyskakuje wtedy takie coś: dla $: "<0>13", dla # "#013". Mam przejściówkę USB->RS232 -> ZL3AVR. Przejściówka to model: USB-SERIAL CH340. Nie wiem w czym leży problem. A niestety nie mam kabelka...
...czy na czas wytransmitowania, bądź odbioru znaku program wstrzyma swoje działanie na 10ms, czy po prostu odbędzie się to równolegle... Jeśli budujesz transmisję RS232 na przerwaniach, sprzętowy USART odbiera znak w czasie, gdy procesor wykonuje program główny. Po odebraniu całego znaku generowane jest przerwanie. W obsłudze przerwania musisz tylko...
Przynajmniej kilka razy w pytaniach na forum w rożnym kontekście natknąłem się na pytanie dotyczące oprogramowania na komputer, umożliwiającego symulowanie naciskania klawiszy na podstawie danych przysyłanych przez port szeregowy do komputera (rozwiązanie łatwiejsze w implementacji programowej i sprzętowej po stronie układu niż np. programowa emulacja...
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"?
Witam serdecznie, Czy już coś wiadomo na temat wysyłania i odbioru danych. Pozdrawiam
Witam ma taki problem... mam zestaw ZL11AVR i przy jego pomocy chce wysylac i odbierac dane przez rs232 miedzy uC a PC tylko jest jeden problem na terminalu na PC wyskakuja dziwne znaki ktore nic mi nie mowia, niie wiem o co chodzi i w czym jest problem, jak ktos mial podobne problemy to prosze o pomoc. w zalaczniku jest zrzut problemu z gory dziekuje
W jaki sposob wysyłasz ten znak (WinAPI/Custom DLL/io)? Pokaz fragment kodu. Po wiedz mi w jaki sposob ustawiles predkosc 5 na porcie? Kolejne pytanie ktore sie nasuwa brzmi: Dlaczego Ty wysyłasz bity, a nie bajty? Fizycznie i tak musisz wysyłać bajty, ale pakujesz pewnie w nie pojedyńcze bity z wartościami. Jeśli chodzi zaś o opózniony odbiór. Jesli...
Tu masz odpowiedź: Znaki tekstowe zaczynają się od 0x20h a te wcześniejsze są po prostu zastępowane kwadratami
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)
Wątek jest uruchamiany dopiero w momencie, gdy dane mogą się pojawić. Jeżeli zatrzymam wątek po odebraniu bajtu danych, to mogę przegapić następny bajt. Przetwarzaj odebrane dane i odbieraj w dwóch różnych wątkach i kolejkuj odebrane bajty sterujące poprzez tablicę. Pytanie czy odpowiedź musi nastąpić po idealnym interwale czasowym. Ile bajtów sterujących...
UART nie ma tutaj nic do rzeczy bo rozdzielić trzeba dane które już są w pamięci. Chodzi o BASCOMa w którym się ciężko pisze. I o niezrozumiały opis. A do tego nie bardzo rozumiem o jakie zera Ci chodzi. Bo z tego co napisałeś to wynika że Ty zamiast 32 to odbierasz 64 znaki. I do tego jakieś zera (których nie ma) Ci obcina. Może BASCOM to konwertuje...
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...
mscomm2.inputlen=1 Można dac to bo gdy tazmienna jest równa 0 to pobierany jest cały bufor A tam może być więcej niż 1 znak i procedura selekcji znaków nie zadziała poprawnie. Jest też zmienna o wartości zależnej od ilości bajtów w buforze. Opis wszystkiego jest w pdf. Jak Kolega ma ustawione parametry portu w terminalu gdzie jest ok?
Hej! Czy wie ktoś może gdzie popełniam błąd z odbiorem danych z RS232 (poniżej kod). Dane owszem odbiera... ale np. wysłany tekst "Witamy" wyswietla mi jako "Witamy" (czyli dobrze), natomiast po chwili ten sam tekst to "Wit(at)amyt(at)"... Pisze w C++ Builder Na początku mam: HANDLE hCom; //uchwyt portu DCB dcb; //konfiguracja portu BOOL fSuccess;...
Jeżeli chcesz tylko wysyłać dane do PC to najprostszym sposobem podłączenia z jednoczesną separacją galwaniczną jest zastosowanie transoptora CNY17. Od strony ATmegi, CNY-2 do Tx , CNY - 1 do Vcc W PC CNY - 5 do pinu 2 w gn DB9 , CNY - 4 do pinu 6 w gn DB9 Odbiór znaków w PC dowolnym terminalem. UWAGA: nie mam przy sobie tego kabelka ani PC z RS'em...
Przestaw terminal na odbiór znaków ASCII. Program jest OK.Dane też.
Witam. Mam działające połączenie Atmega8 - PC za pośrednictwem USART oraz podłączony LCD 16X2 do atmegi. Chcę zrobić tak żeby można było wysyłać znaki przez terminal(np. RealTerm) i odrazu wypisywać ich na wyświetlać. Spróbowałem dodać lcd_string(UDR); przed zwracaniem UDR w funkcję USART_Receive() . Oraz wywołanie USART_Receive() w pętli głownej. Ale...
Odbiór znaków z UART [syntax=c]char uart_getc(void){ if(UART_RxHead == UART_RxTail) return 0; UART_RxTail = (UART_RxTail+1)&UART_RX_BUF_MASK; return UART_Rx_Buf[UART_RxTail]; }[/syntax] deklaracje zmiennych [syntax=c]volatile char UART_Rx_Buf[UART_RX_BUF_SIZE]; volatile uint8_t UART_RxHead; volatile uint8_t UART_RxTail; volatile unsigned char odb_x;...
Mam sterownik Cpm2a steruję bezpośrednio przez rs232c ustawienia są takie same w PC jak i w PLC potrafię odczytać poprawnie daną komórkę DM lecz zapisać już nie . Rs232c jest sprawny bo mogę zaprogramować sterownik bez problemu. Problem w tym iż wysyłać dane z każdej komórki DM sterownika PLc potrafię prawidłowo przy pomocy dowolnego programu mogę je...
Przepraszam za grzebologię, ale postanowiłem to umieścić na forum, żeby był pożytek :] ( W związku z mailem, jaki otrzymałem :], Był on opatrzony tym tematem :] ) Kod programu na 8051 wysyłającego komunikat powitalny "AT89C51 ver. 1.0", a następnie odbierającego to, co wysyła komp i wyświetlającego na LCD. Prędkość transmisji 2400 b/s. ;------------------------------------...
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()...
Witam Wszystkich serdecznie i z gory przepraszam ze pisze post jeden pod drugim! Mam problem bo nie wiem jak zabrac sie do napisania programiku ( w C najlepiej KEIL) do asynchronicznej transmisji ( 19200 bps dla kwarcu 11.0952 MHz) ciagu jakis znakow(np zadanych stanem jednego portow uC) do PC (Hiperterminal).I w druga strone czyli przeslanie znaku...
Witam, mam problem z RS232. Wysyłam z procesora różne znaki (0...255) i próbuję je odebrać, ale nie wychodzi tak jak trzeba. Procek na pewno wysyła (sprawdzone pod terminalem). Jak odebrać np. 100 znaków ?? //--------------------------------------... #include <vcl.h> #include <stdio.h> #pragma hdrstop #include...
Witam. Przetestowałem wczoraj i działa na wyrażeniu: Proszę pamiętać o używaniu znaczników code . - arnoldziq
Jak dam bez F_CPU to wygląda to tak: Build started 4.2.2015 at 16:59:51 [syntax=c]avr-gcc -mmcu=atmega88p -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT rs232test.o -MF dep/rs232test.o.d -c ../rs232test.c In file included from ../rs232test.c:21: c:/winavr-20100110/lib/gcc/../../avr/inc...
Witam Wysyłam znak do mikrokontrolera wysyłanie mam zrobione Kod: void __fastcall TForm1::SpeedButton1Click(TO... *Sender) { if ((hCommDev != INVALID_HANDLE_VALUE) && (hCommDev > 0)) TransmitCommChar(hCommDev, 'A'); else MessageBox(NULL, sbuffer4, sbuffer2, MB_OK); } ...... void...
Deklaruję zmienną jako bajt i jej wartość ustawiam na 0. Następnie wysyłam ją po rs232. Na terminalu ustawionym na odbiór stringów mam prawidłowo odebraną daną - czyli 0. Jak ustawię odbiór hex'ów to wyświetla mi 30 30 0D 0A. Jak jest ta dana konwertowana na hexa? Ona nie jest konvertowana na hex. Print służy do wyświetlania na terminalu więc wartość...
Witam, tworzę aplikację komunikującą się z urządzeniem za pomocą komend AT. Po przewertowaniu połowy internetu, przeczytaniu i wykorzystaniu przykładów z książki Daniluka "RS232C Praktyczne programowanie ..." nadal mam problem z właściwym odbiorem danych. Na obecną chwilę opierając się głównie na przykładach z w/w książki potrafię wysłać komendę/zapytanie...
Witam wszystkich mam następujący problem, otóż chciał bym stworzyć funkcję która pobiera z portu rs232 cały napis, który następnie mógł bym przekonwertować do postaci integer, czy double lub inne zmiennej liczbowej. Próbowałem to zrobić w oparciu o własną funkcje uart_get_string ale funkcja pobiera tylko jeden znak. Powyższe potrzebne mi jest do np....
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 wszystkich. Mam urządzenie (AVR+bascom) które wysyła po rs'ie dane o ogólnie rzecz mówiąc stanie czujników, podzespołów. Dane odbierane w terminalu wyglądają jak poniżej: W:sterownik v5.14 - 05.12.11 U:6.12V I:42.0 H:poziomo - poza zakresem h:0 V:pionowo - poza zakresem v:0 V:pionowo - w górę v:9 U:6.15V...
Mam problem z RS232. Otóż mam układ mikroprocesorowy i chcę używać z nim RS232. Wykonałem płyteczkę z układem MAX3221. Teraz meritum. Kiedy w podstawkę włożę układ ATmega8535 i zasilę całość napięciem 5V transmisja RS232 jest poprawna (wysłanie i odbiór). To daje pewność, że podłączenia są właściwe i terminal którym nadaję i odbieram działa. Kiedy zamienię...
Witam! Mam problem z odbieraniem danych wysłanych przez ATmege po RS232. Program na ATMedze jest następujący // Sterownie diodą LED podłączoną do dowolnej linii mikrokontrolera // za pomocą dowolnego znaku odebranego z portu szeregowego // mikrokontrolera i wysyłanie jej stanu na port szeregowy #include <avr/io.h> // dostęp do rejestrów // Zmieniając...
Pracowałem ostatnimi dniami nad małym kontrolerkiem, sterowanym przez RS232. Obsługa niektórych poleceń, wydawanych do niego, trwała nawet po kilka milisekund i... okazało się, że użyty przeze mnie 16F628A ma bufor wejściowy USARTa rozmiaru... 2 bajtów. Tak, to nie pomyłka :| Dlatego postanowiłem napisać obsługę cyklicznego bufora wejściowego - o rozmiarze...
Witam. Robię układ elektroniczny (z atmegą32), który będzie komunikował się z komputerem za pośrednictwem RS232. Na komputer zamierzam stworzyć prostą aplikację, którą napiszę w Visual Basic 4. Czytałem, że do komunikacji programu napisanego w VB za pośrednictwem RS232 istnieje jakaś biblioteka. Jaka to jest biblioteka? Czy będzie współpracowała ze...
Witam wszystkich na forum. Jest to moje pierwsze publikowane DIY. Słowo wstępu… Projekt powstał z jednego, bardzo ważnego powodu: bo bardzo chciałem coś takiego mieć! Jest to układ odczytujący kod karty poprzez interface EM4095 z anteną, dekoduje, sprawdza i wysyła poprzez port szeregowy. Interface’u z układem EM4095 i anteną użyłem kupionego,...
Witam! Obsługa przerwania trwa z reguły krócej, niż odbiór pojedyńczego bitu przez USART. Drugim zabezpieczeniem jest bufor FIFO - odbierze kolejny znak, zanim odczytasz poprzedni. Pozdrawiam!
Witam. Próbuję napisać program pod DOS komunikujący się przez rs232. Piszę go w BORLAND C++ i musi działać w czystym DOS. Niestety nie mogę zebrać informacji jak poprawnie zainicjować port, otworzyć ,nadać odebrać i zamknąć. A to co mem, ale nie działa mi to dobrze: unsigned int portAddress=0x3f8; // ----inicjuję port outportb(portAddress+3,0x83);...
Witam forumowiczów Piszę program do obsługi miernika, ale utknąłem na samym początku, czyli na komunikacji po RS232. Korzystam z darmowego komponentu TComPort. Mam spięte dwa komputery. I jak wysyłam ciąg znaków z programu na terminal, to wszystko działa jak należy. Natomiast jak odbieram znaki przez zdarzenie ComPort1RxChar to nie dostaje kompletnego...
Witam, robię program do wgrywania oprogramowania na mikroprocesor przez port RS232. Używam przy tym kontrolki SerialPort .NET3.0. Problem jest taki iż po każdej linii powinienem dostać Xon(0x11) gdy jest gotowy do dalszego odbioru lub Xoff gdy nie jest gotowy.Jednak dostaje to dopiero po przesłaniu calego pliku wsadowego.Taki kod do przesylania : serialPort1.RtsEnable...
Witam, Próbuję napisać program, którym będę mógł wysyłać dane przez port szeregowy i odbierać na porcie szeregowym innego komputera. W moim przypadku wysyłanie jest do portu USB, po drodze przejściówka USB -> RS232. Bardzo proszę o wskazanie błędów w programie odbierającym dane (po czasie ok. 1 minuty coś się wykrzacza, obciążenie procesora 100%)...
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ć...
Witam Mam problem z programem obsługującym odbiór po rs232. Do portu podłączony jest czytnik kart zbliżeniowych z Allegro, wysyłający 40bitowy klucz w paczkach po 8 plus 2 znaki na koniec(powrót i następna linia). Wysyła z prędkością 9600, 8 bitów, 1 bit stopu, brak kontroli parzystości, brak sterowania przepływem. W HyperTerminalu po ustawieniu takich...
We wnętrzu tego eventu od odbierania danych spróbowałbym coś takiego jak poniżej. Na takiej konstrukcji zrobiłem kiedyś program który odbierał dowolną tablice znaków z atmegi po rs232. Należy też pamiętać że ważny jest encoding na serial porcie, w przypadku komunikacji C# <=> avr. Ja osobiście miałem ustawiony [syntax=csharp]serialPort.Encoding...
Witam Proponuję wstępnie zapoznać się ze specyfikacją struktury zapytań oraz zwracanych wiadomości. Pomoże to w zrozumieniu protokołu komunikacyjnego. Wpisz w przeglądarkę "QPI Device protocol ID Inquiry" a otrzymasz informacje skąd ściągnąć rs232-communication-protocol.pdf. Jeśli go już masz to otrzymasz odpowiedzi na większość pytań. Co do kodowania...
Absolutnie nie posiadam przykładów w Bascom, mam tylko Helpa i co nieco pamiętam, co było juz na forum... ;) Na codzień używam asm - ma mniej poleceń do zapamiętania ;) Pewnie w ATmega128 bedziesz potrzebował użyć URXC1 zamiast URXC . Ostatnio, jak oprogramowywałem odbiór USART, to zrobiłem bufor w RAM "okrężny", z którego w wolnej chwili procedurki...
W kwestii bascom-u Ci nie pomogę ale może wykorzystasz wstawki asemblerowe ; .org 0 rjmp RESET ; Reset rjmp EXT_INT0 ; zewnetrzne Int0 rjmp EXT_INT1 ; zewnetrzne Int1 rjmp TIM1_CAPT ; zewnetrzny wychwyt wartosci licznika 1 rjmp TIM1_COMPA ; komparator A licznika 1 rjmp TIM1_OVF ; przepelnienie licznika 1 rjmp TIM0_OVF ; przepelnienie licznika 0 rjmp...
Witam, Programuję sobie procesorek AT89C2051 i magistralę 1-Wire. O ile z odczytem danych z magistrali nie było problemów, o tyle z wysłaniem tego przez RS-232 jest problem. Czy ktoś z użytkowników ma jakieś gotowe procedury zapisu i odczytu do porty RS232? W BASCOM wszystko działa, ale chcę to zrobić w C. Na razie doszedłem do: //funkcja obsługująca...
Mam problem z transmisją danych. Na PC mam uruchomiony terminal (terminal v1.9b), i jak wysyłam treść z AVR do portu RS232 to terminal poprawnie odczytuje wysłaną treść. Natomiast problem tkwi w transmisji w drugą stronę. Żeby sprawdzić czy poprawnie AVR odbierze dane wysłane z RS232, napisałem tak program żeby po odebraniu treści wysłanej z terminala...
Witam Problem następujący. Odbieram dane z rs232 poleceniem SerialPort.ReadExisting(). Przypisuje każdemu znakowi w ramce odpowiednią zmienną (wycinając poleceniem MID poszczególne znaki), a poleceniem ASC zamieniam znaki te na BAJTY. Niestety tablica ASCII jest do 127 i przy konwersji mam bajty tylko do 127 a chcę mieć do 255.. Wiem że zamiast do ASCII...
Witam Pisze program do komunikacji urządzenia z komputerem po RS-ie w Borlandzie C++ Buliderze 6. Nadawanie i odbiór mam już zrobione, lecz mam problem z uporządkowaniem odebranych danych. Odebrany String o długości 6-12 znaków mam w tablicy 12-sto elementowej. I teraz mam 2 problemy: 1. Ponieważ mam zmienną długość słowa (6-12 znaków) w jaki sposób...
Witam! Chcę odczytywać wartości które wysyła mi mikrokontroler (ATTINY2313) przez RS232 w programie napisanym pod Linuksem. Mój problem polega na tym, że za nic nie mogę odebrać tych danych, po prostu program staje w miejscu i nic się nie dzieje. Mikrokontroler mam tak zaprogramowany: #include <avr/io.h> #include <util/delay.h> //--------------------------------RS232-...
Witam, szukam już od dłuższego czasu programu do odbioru i nadawania znaków na atmege16 do WINAVR w języku C, ale wszystko co znajduje to albo nie działa albo widać nie jest dostosowane tylko odbioru (np. stosowane są sbi, a WINAVR tego nie zna). Czy ktoś mógłby skrobnąć kod wzorcowy, nawet dla potomnych, żeby od razu zadziałał na ATMEGA16 z rezonatorem...
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...
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...
Witam ostatnimi czasy mając do dyspozycji mikrokontroler attiny26. Postanowiłem napisać prosty program umożliwiający przesyłanie znaków z komputera do uC i prezentacje na wyświetlaczu alfanumerycznym LED. Attiny26 nie posiada jednak portu szeregowego RS232 więc chciałem spróbować swoich sił i napisać obsługę programową. Generalnie odbiór danych realizuje...
Witam, Piszę program do komunikacji z przyrządem laboratoryjnym (PTW Unidos) przez RS232. Aktualny kod: [syntax=c]#include<windows.h> #include<stdio.h> #include<conio.h> #include<fstream> #include<iostream> #include<string> using namespace std; int main() { fstream plik; plik.open("wynik.txt",ios::out); HANDLE hComm;...
Witam mam taki problem potrzebuję wysyłać przez port com danie w taki sposób, aby były one traktowane jako znaki ASCII bo tylko takie mogę poprawnie odebrać mikroprocesorem. Z tego co zauważyłem jedynym działającym w przerwaniu od UARTa poleceniem odbioru, w bascom AVR jest inkey a to odbiera tylko znaki ASCII :/ No i tu pojawia się problem bo o ile...
Czesc, przedstawiam schemat sposobu podlaczenia, max232 (procesor AT90s2313). Kabel skrosowany, znaki wysylam HYPER TERMINALEM, jednak procesor nie reaguje jakby nic nie dostawal. Czy gdzies jest blad w programie czy w elektronice? (Kontroluje "port monitorem" co wychodzi na RS i wszystko sie zgadza). #include <avr\io.h> #include <stdlib.h>...
czytam czytam i nie moge nic znaleść o tych zapytaniach :cry: query : PChar = 'CDAT?'+#13+#10; // przykładowe zapytanie // zakończone parą znaków CR LF Czy ktoś pomógłby mi to zrozumieć (dodam że sam się tego ucze i nie mam z nikąd pomocy). Sama ksiązka sporo mi dała "Praktyczne programowanie rs232" sporo objaśnień odnośnie całej komunikacji ale...
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:...
Witam wszystkich. Mam taki problem na którym stoję już kilka dni. Mianowicie tak: Posiadam przejściówkę USB-RS opartą o układ PL2303x przez którą to chcę się komunikować z ATmegą16. Przejściówka była dorzucona do zakupionej na wiadomym serwisie aukcyjnym płytki testowej do mikroprocesora. Po podłączeniu przejściówki do portu usb w PC generalnie wszystko...
Jeżeli masz na myśli bufory "wewnątrz" układu UART to sterowanie XON/XOFF jest możliwe tylko dla nielicznych realizacji UART i odbywa się przez programowanie odpowiednich rejestrów UART-u ( próg zadziałania, próg wznowienia, kody znaków XOFF i XON). W wiekszości przypadków sterowanie XON/XOFF dotyczy obsługi programowej, realizowanej na przerwaniach...
W ksiażce RS232 praktyczne programowanie jest następujący kod do naprzemiennego sterowania RS232 //-----------dos_rs_1.cpp---------------... #include <iostream.h> #include <conio.h> #include <stdio.h> #include <bios.h> #include <string.h> #define WINDOW_IN() window (1,3,80,12) // okno do...
Witam! Mam taki oto problem. Gdy chcę za pomocą uC skomunikować się z c45, to nie zawsze przyjmie on komendę AT, ponadto nigdy mi nie odpowiada:( dla przykładu: na komendę UART_sendstring("ATD+48886160558\n\r"); telefon odpowiada, próbuje zestawić połączenie, ale tego nie robi, bo nie jest to tryb voice. na komendę UART_sendstring("ATD+48886160558;\n\r")....
Witam Dołączyłem do pinu 1 RX i pinu 2 TX układ z MAX232 (piny 11, 12). Napięcia w układzie max232: pin 2-pin 15 jest +9,82V 6-15 jest -9,64V 11-15 jest +3,45V 12-15 jest +5,05V 13-15 jest 0V 14-15 jest -9,64V 16-15 jest +5,05V Ustaliłem prędkość transmisji 2400, 2 bity stopu, 8 bitów danych, odpaliłem HyperTerminala i cisza nic się nie dzieje nawet...
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...
Ja bym sprawdzał to w dwóch etapach: 1. nadawanie - napisz program wysyłający w pętli jeden znak. Musisz doprowadzić do tego, aby terminal w PC wyświetlał go prawidłowo. 2. odbiór - jak nadawanie będzie OK, to i odbiór pewnie będzie OK - sprawdź to odsyłając znak odebrany z terminala. Teraz możliwe powody niedziałania: - zła częstotliwość - sprawdź,...
Witam, napisałem prosty program w C, który ma za zadanie odebrać znak z komputera, zasygnalizować to, a następnie odesłać ten sam znak do komputera (echo). Odbiór danych jest w porządku (działa sygnalizacja diodami), natomiast dane nie są odsyłane do komputera. Zapewne problem jest banalny, ale nie mogę znaleźć rozwiązania. Nie korzystam z kwarcu zewnętrznego,...
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...
Witajcie. Znalazłem adapter USB -> UART TTL, który powinien być zgodny z portem RS232, ale jeśli nie jest to proszę mnie poprawić... Postanowiłem połączyć sobie komputer ze wzmacniaczem za pomocą tego portu. Odbiór danych działa prawidłowo, niestety wysyłanie komend powoduje tylko odbiór ostatniej komendy z losowymi znakami: Podłączyłem wg tego schematu...
Witam, Nie znam BASCOM'a ale procesory AVR oferują przerwanie w momencie odebrania znaku. Wykorzystaj przerwania i bedziesz miał daną w momencie odbioru, a w tym czasie program może wykonywać co do niego należy Pozdrawiam
Witam, podłączę się pod temat. Zrobiłem sobie na podstawie powyższych postów programik do nadawania i odbierania danych. Nadawanie działa bez problemu. Mam problem z odbiorem. Jak odebrać np. 80 znaków ? Bo nijak mi to nie wychodzi. Robię to tak: ... int pom; char dane[1024]; pom=ReadUart(dane,80); ... No i w dane powienienem mieć 80 znaków (procek...
pring temp1 print temp2 print a ' stan portu d5 jeśli jest sygnał wysyła wartość x na port com print 1' jeśli sygnał na porcie d5 zanikł wysyła 1 są to dwie temperatury wysyłane na port com. W hyperterminalu odbieram je bez problemu jednak jak to zrobić żeby można je było wyświetlić w delphi na 2 elementach typu RichEdit i jak odczytać wartość sygnału...
właśnie wkleiłem zmieniony kod: #include <avr/io.h> void USART_Init( unsigned int baud ) { /* Set baud rate */ UBRRH = 0; UBRRL = 51; /* Enable Receiver and Transmitter */ UCSRB = (1<<RXEN)|(1<<TX... /* Set frame format: 8data, 2stop bit */ UCSRC = (1<<URSEL)|(1<<U...
Dałem sei(); przed while(1) i też nie chodzi. Zastanawia mnie czy jak z komputera wysylam dany znak to czy on go rozpoznaje? Oscyloskopem widze przychodza dane do Rx, a na Tx cisza.
Już nie mam pomysłów... Próbowałem już różnych rzeczy. Problem wygląda tak: Chciałem skomunikować się z kompem i... Doszedłem do momentu w którym jak wysyłam jakiś znaczek z uC to na terminalu otrzymuję inny (za każdym razem ten sam) Tu wygenerowałem listę znaków A-Z i po przesłaniu zobaczyłęm: znaczki odebrane | znaczki wysłane bin | hex |znak |znak...
Mam dwa programy: jeden do wysyłania, drugi do odbioru danych przez RSa. Wysyłanie danych działa jak najbardziej poprawnie (sprawdziłem za pomocą programu RealTerm). Problem mam z odbiorem. Wysyłam znak który w ASCII ma numer 56; program do odbioru danych wyświetla znak, który w kodzsie ASCII ma numer 204. Obojętnie, jaki znak wysyłam zawsze jest 204...
Witam, mam problem z asynchronicznym odbiorem danych przez rs232. Przejrzałem różne posty na forum i na ich podstawie skleciłem coś takiego, ale nie działa tak jak ja potrzebuję. Chciałbym aby PC odbierał po RS daną (1 bajt) w chwili gdy jest cos do odebrania, (nie cyklicznie, nie stale odczytywał, tylko w chwili gdy jest bajt do odebrania, które to...
Skorzystać z odbioru danych w przerwaniu od UARTA. Mały przykład dla ciebie: $regfile = "M32def.dat" 'Deklaracja typu mikrokontrolera $crystal = 8000000 'Czestotliwosc oscylatora $baud = 9600 Const Max_znakow = 11 'rozmiar bufora Dim Bufor As String * Max_znakow Dim Licz_znaki As Byte Dim Flaga As Bit Enable Interrupts On Urxc Odebrano 'przerwanie...
Witam, napisałem taki program do odbioru danych z rs232 wysyłanych drogą radiową przy pomocy radiomodemów 433 Mhz (działających oczywiście po rs232) z komputera i mam taki problem, że niestety sa błędy. na przykład zbyt szybkie wciśnięcie dwóch klawiszy wysyłających powoduje zawieszanie procesora.. i potrzebny jest reset. Nie wiem czemu tak jest skoro...
Witam. Od pewnego czasu uczę się pisać w VB.. Teraz, by wykorzystać potęgę wbudowanego w Atmegi UARTu, chcę sam stworzyć prosty terminal do odbioru i nadawania stringów. Zasada działania ma być bardzo prosta - wszystko co wyśle uC ma być wpisane do pola tekstowego, i analogicznie w drugą stronę (chodź tu zależy jaki program jest napisany na uC, ale...