Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Кто-нибудь имел счастье работать с COM портом в C#?.. Прибору отсылаешь запрос, он отвечает. С...{+}(+)

Отправлено polotsk 08 сентября 2009, г. 14:39


Текст заголовка сообщения полностью: Кто-нибудь имел счастье работать с COM портом в C#?.. Прибору отсылаешь запрос, он отвечает. Стандартно. Пишу программу, по нажатии кнопки делается запрос и в текстовом окошке выводится ответ от прибора. Проблема в том, что если не поставить паузу в несколько миллисекунд (от 15) между посылкой и чтением, то примется только 1 (первый) символ ответа. Если же с паузой, то вся посылка! Что за нафиг?

private void button1_Click(object sender, EventArgs e)
{
byte[] uart_out = new byte[7];
byte[] uart_in = new byte[7];
serialPort1.Open();
serialPort1.DiscardInBuffer();
serialPort1.DiscardOutBuffer();
uart_out[0] = 0x40;
uart_out[1] = 0x22;
uart_out[2] = 0x32;
uart_out[3] = 0x37;
uart_out[4] = 0x32;
uart_out[5] = 0x38;
uart_out[6] = 0x31;
serialPort1.Write(uart_out, 0, 7);
//Thread.Sleep(15); //- Если раскомментить все работает!
serialPort1.Read(uart_in, 0, 7);
textBox1.Text = Encoding.ASCII.GetString(uart_in);

serialPort1.Close();
}


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 234:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru