Доброго времени!
За несколько дней пришлось в спешке освоить C# и по примерам накидать приложение.
По большому счёту всё работает, но есть небольшая проблема, которую нужно исправить.
Описание проекта.
- микроконтроллер подключён к ПК через COM-порт;
- программа раз в секунду шлёт МК символы поочерёдно "0","1"или "2";
- МК в зависимости от пришедшего символа даёт соответствующий ответ: если "0", то возвращает "333", "1" - "322", "2" - "655";
- Программа получив ответы, разлаживает их в соответствующие элементы: Если было отправлено "0", то вернувшийся ответ "333" положить в label14; "1" - "322" = label15; "2" - "655" = label10
Вот такая тестовая незамысловатая логика для теста работоспособности.
Проблема в том, что значения не всегда выводятся полным значением. Как можно видеть на скрине, первое значение вместо "333" вывелось только "33", "322" вывелось полностью, и "655" только "55".
При следующей итерации может уже получиться другой вывод....
Краткое описание кода программы:
- код имеет подключенный Таймер, прерывание которого срабатывает раз в 1000 мс
- после соединения по КОМ-порту включается таймер и раз в секунду отправляется значение "0" "1" либо "2".
- в функции serialPort1_DataReceived происходить приём данных в переменную типа string dataIN
- в функции ShowData происходит работа с содержимым dataIN. В зависимости от отправленного символа, ответ помещается в соответствующий элемент