Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Com port (writefile кривая работа) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ книги по c++ http://www.cyberforum.ru/cpp-beginners/thread342234.html
знает ли кто то библиотеку где можно скачать книгу с сайта(не с файлообменника(letibit turbobit)) или можно онлайн читать книги естественно по c++
C++ Использование BassNet.dll. Проблема с инициализацией и воспроизведением файла mp3 Пожалуйста, помогите с библиотекой BassNet.dll (знаю уже были темы, связанные с использованием этой библиотеки, но так как в них не нашел рабочего примера, создал эту тему) Проблема в том, что я... http://www.cyberforum.ru/cpp-beginners/thread342232.html
C++ контейнеры, вектор
Привет! Подскажите пожалуйста как осуществить доступ к элементу вектора, который сам состоит из векторов типа char. Приведите пожалуйста пример (или ссылочку) с итератором (или такое делают только...
функции C++
народ помогите пожалуйста с созданием функции.. я не знаю как ее написать на с++)) пытался по аналогии с main() чета не вышло)) напишите пожалуйста в ответах функцию например a*a))) заранее...
C++ DevC++ http://www.cyberforum.ru/cpp-beginners/thread342219.html
здрасти всем, народ у меня один и тот же код на разных компиляторах делает разные вещи, это нормально(DevC++ vs VS 2008)? да и как в DevC++ пошагово пройтись (у меня у StepInto visible==false) ?
C++ Доступ к переменной по абсолютному адресу. Мне нужно обратится к ячейке памяти с известным конкретным адресом (это может быть вектор прерывания, переменная БИОС итд). Как это сделать на Си? На Паскале это делается легко. Можно просто объявить... подробнее

Показать сообщение отдельно
Korbofos
4 / 4 / 0
Регистрация: 15.08.2011
Сообщений: 154

Com port (writefile кривая работа) - C++

15.08.2011, 18:43. Просмотров 3309. Ответов 11
Метки (Все метки)

Подскажите в чём дело?
Пишу терминалку для управления мк. Необходимо отправить массив из трёх байт.
В место трёх байт на мк приходит 1 "левый" байт совсем не то что отправлял...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//---------------------------------------------------------------------------
С++ Builder
//инициализация порта
void Open_Port (char name)
{
char port_name[8];
sprintf(port_name, "COM%d", name);
hCom = CreateFile(port_name ,GENERIC_READ | GENERIC_WRITE,0,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, NULL);
if( hCom == INVALID_HANDLE_VALUE )
{
ShowMessage("Com port error");
CloseHandle(hCom);
}
else
{
GetCommState(hCom, &dcb);
dcb.fOutxCtsFlow = FALSE;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fInX = FALSE;
dcb.fOutX = FALSE;
 
 
dcb.fBinary = TRUE;
dcb.fAbortOnError = FALSE;
dcb.fNull = FALSE;
dcb.ByteSize = 8;
dcb.fParity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
if (!SetCommState(hCom, &dcb))
{
CloseHandle(hCom);
ShowMessage("Com port error");
}
 
comm_timeouts.ReadIntervalTimeout = 5000;
comm_timeouts.ReadTotalTimeoutMultiplier = 5000;
comm_timeouts.ReadTotalTimeoutConstant = 5000;
comm_timeouts.WriteTotalTimeoutMultiplier = 5000;
comm_timeouts.WriteTotalTimeoutConstant =5000;
SetCommTimeouts(hCom, &comm_timeouts);
 
PurgeComm(hCom, PURGE_RXCLEAR);
PurgeComm(hCom, PURGE_TXCLEAR);
}
}
 
//функция записи в порт
char Write_Port (unsigned char *buf, size_t raz)
{
DWORD dwWritten;
WriteFile(hCom,buf,raz,&dwWritten,NULL);
if(raz==dwWritten)
{return 1;}
else
{return 0;}
}
 
unsigned char tx_buffer[3]={1,3,150};
 
//Записываем в порт три байта
if(Write_Port(tx_buffer,3)==false)
{ShowMessage("error write_port");}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru