Форум программистов, компьютерный форум 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++ Доступ к переменной по абсолютному адресу. Мне нужно обратится к ячейке памяти с известным конкретным адресом (это может быть вектор прерывания, переменная БИОС итд). Как это сделать на Си? На Паскале это делается легко. Можно просто объявить переменную по абсолютному адресу через оператор absolute. Можно достать через указатель присвоив ему конкретное числовое значение через функцию ptr. А в Си я что то ничего такого не нашел. Использую... подробнее

Показать сообщение отдельно
Korbofos
3 / 3 / 0
Регистрация: 15.08.2011
Сообщений: 137
15.08.2011, 18:43     Com port (writefile кривая работа)
Подскажите в чём дело?
Пишу терминалку для управления мк. Необходимо отправить массив из трёх байт.
В место трёх байт на мк приходит 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");}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru