|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.04.2018, 08:22 | #1 |
Новичок
Джуниор
Регистрация: 20.04.2018
Сообщений: 6
|
Не могу разобраться с компонентом bcomport
Встала необходимость читать значения приходящие на ком порт компьютера. Опыта в этом очень мало. Микроконтроллер считывает значения с датчика и отсылает их в программу delphi.Контроллер отсылает по 2 байта(старший и младший) несколько раз в секунду. Эти байты приходят к программу,программа переводит их в единый тип данных word и дальше я уже должен с этим значением как-то работать,но проблема такая что программа работает нестабильно. Ниже привожу код
Код:
Нестабильность работы программы заключается в том,что в button1.caption чаще всего выводится значение 1,а не 2.То есть приходить только 1 байт,а второй теряется. Иногда показывает 2,но это редко.Ну и само собой полученные значения не выглядят правильными и сильно искажаются. Я пытался "поиграться" с временными задержками в свойствах timeouts компонента,но не видно чтоб они на что-то влияли. Ниже привожу файл с самим компонентом и моим проектом. Кстати,значения посылаются динамически,несколько раз в секунду. Если кто знает в чём я совершил ошибку,подскажите пожалуйста |
20.04.2018, 10:01 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,568
|
МК выдает последов. код в UART. А во что и чем преобразуется сигнал UART - реальный COM, USB ?
|
20.04.2018, 10:25 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,718
|
Код:
|
20.04.2018, 11:33 | #4 |
Новичок
Джуниор
Регистрация: 20.04.2018
Сообщений: 6
|
Кстати да,забыл об этом упомянуть. Это виртуальный ком порт,созданный с помощью микросхемы FTDI,втыкаю в USB. Фишка в том,что если просто послать два байта по этой схеме,например по нажатию кнопки,то всё нормально считывается,а если как в этом примере,динамически,то всё работает плохо. Вообще,встала мысль,просто обрезать один байт а получать только один.Там всё равно во втором байте только 2 бита значащих.Там просто устройство выходные данные 10 битов имеет.Просто неохота 2 бита терять.
|
20.04.2018, 11:34 | #5 |
Новичок
Джуниор
Регистрация: 20.04.2018
Сообщений: 6
|
То есть вы имеете ввиду,что стоит делать проверку? если пришло 0 то вообще не обрабатывать,а если 1 то делать что-то другое? вот как.Похоже в этом и ошибка
|
20.04.2018, 12:40 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,568
|
Мне приходилось работать с FTDI, я использовал фирменную DLL-ку, и никаких проблем не возникало.
Но есть одна засада: кетайцы ломанулись подделывать эти дивайсы, и FTDI, чтобы защититься, в своих DLL-ках прикрутила фичу: обнаружив, что чип поддельный, что-то в нем крушит (вроде VID и PID). Мне не довелось бодаться с контрафактом, но ребята рассказывали: Запрос для Гугля FTDI site:https://leoniv.livejournal.com/ |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
BComPort в Delphi7 | Oksymoron | Помощь студентам | 31 | 07.04.2023 09:43 |
как установить компонент bcomport в delphi7? | Виктор dubStep | Общие вопросы Delphi | 4 | 22.02.2015 00:04 |
Терминал BComPort выдает иероглифы. | azzzazzzelDEAN | Компоненты Delphi | 32 | 09.04.2014 16:18 |
Разобраться с компонентом | BARNEY | Фриланс | 13 | 07.02.2014 19:26 |