|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.10.2012, 22:21 | #1 |
Пользователь Подтвердите свой е-майл
Регистрация: 24.11.2007
Сообщений: 53
|
отправляются не коректные данные на COM порт
Добрый день. У меня есть некое устройство которое подключено к COM23. Если на устройство передается '1'(то есть char '1'или 49 в значениях) то оно загорает. проблема в том что на устройство приходит не верное значение. я проверил через консоль на putty отправлял '1' все работало. На С# не хочет. Проверил на С все работало(через вин апи).
[CSHARP]using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO.Ports; using System.Threading; namespace MSP430_Test1 { class Program { static void Main(string[] args) { try { SerialPort port = new SerialPort("COM23", 4800, Parity.Even, 8, StopBits.Two); port.Open(); port.DiscardInBuffer(); port.DiscardOutBuffer(); char[] a = {(char)49}; port.Write(a, 0, 1); port.Close(); } catch (Exception e) { throw e; }; } } }[/CSHARP] Я тут отправляю как массив char . пробовал как стринг и как массив байтов одна ошибка. [CPP]#include<windows.h> #include <iostream> #include <fstream> #include <tchar.h> #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { _TCHAR pname[]=_T("\\\\.\\COM23") ; HANDLE Port; //. . . Port = CreateFile((LPCWSTR)pname, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); if (Port == INVALID_HANDLE_VALUE) { MessageBox(NULL, (LPCWSTR) "Невозможно открыть последовательный порт", (LPCWSTR)"Error", MB_OK); ExitProcess(1); } //. . . char s='1'; DWORD real_write; DCB dcb; BOOL succ; ifstream in; dcb.DCBlength=sizeof(DCB); succ=GetCommState(Port,&dcb); dcb.BaudRate=9600; dcb.ByteSize=8; dcb.Parity=EVENPARITY; dcb.StopBits=2; succ=SetCommState(Port,&dcb); WriteFile(Port,&s,1,&real_write,NUL L); CloseHandle(Port);[/CPP] |
17.10.2012, 22:26 | #2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
Какая ошибка?
|
17.10.2012, 23:02 | #3 |
Пользователь Подтвердите свой е-майл
Регистрация: 24.11.2007
Сообщений: 53
|
|
17.10.2012, 23:39 | #4 |
Пользователь Подтвердите свой е-майл
Регистрация: 24.11.2007
Сообщений: 53
|
Все оказалось проще . Я над этим голову ломал 2 дня . А все не внимательность .
Просто на штучке стояло скорость 9600,а тут 4800; и они не успевали прочитаться . Это говорит о том что нужно высыпаться.(Это так лирика) |
17.10.2012, 23:40 | #5 |
Пользователь Подтвердите свой е-майл
Регистрация: 24.11.2007
Сообщений: 53
|
Все оказалось проще . Я над этим голову ломал 2 дня . А все не внимательность .
Просто на штучке стояло скорость 9600,а тут 4800; и они не успевали прочитаться . Это говорит о том что нужно высыпаться.(Это так лирика) |
18.10.2012, 03:42 | #6 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...а вы не спали?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
18.10.2012, 09:31 | #7 |
Пользователь Подтвердите свой е-майл
Регистрация: 24.11.2007
Сообщений: 53
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цикл. Не отправляются повторно запросы. | Зод | Работа с сетью в Delphi | 4 | 17.02.2012 23:30 |
Не полностью принимаются данные через UDP порт | Terran | Работа с сетью в Delphi | 6 | 26.01.2011 16:56 |
Delphi. Можно ли отправить данные через порт открытый другой программой? | losticsx | Помощь студентам | 2 | 24.08.2010 19:47 |
COM порт, как принять данные? | gusluk | Общие вопросы Delphi | 3 | 11.09.2009 08:10 |
Как записать в com -порт или модем двоичные данные | sergrom | Win Api | 10 | 25.06.2007 15:15 |