rangerrus » 06 апр 2011, 21:13
кто нибудь пробовал отправлять через С# данные в ком порт? Хочу сделать аналог миббимовской игрушки на шарпе. Застрял на работе с компортом) Порт нормально открывается, а вот дальше никаких подвижек. Пробовал через зигби мегаплату - с терминала бесповодная связь отлично работает, а вот программа ни в какую не работает. Подключал напрямую в минибот - эффект тот же. Использую класс serialPort. Настройки много раз проверял - со всеми не пашет) В мегаплате и миниботе в меге88 прошивка v3.2 из темы про роборф)
МОжет кто уже сталкивался с таким поведением?
Добавлено спустя 47 минут 27 секунд:
проблему вроде как нашел - походу данные слишком быстро передаются. Мега просто словить все не успевает)
Добавлено спустя 2 часа 26 минут 20 секунд:
провел более точные эксперименты. в тестовой прошивке просто принимаются данные через уарт и отправляю принятое на лсд экран. Используя просто прерывание по приему символа сообщение принимается иногда кусками с мусором. В хелпе использовал следующий код:
Config Serialin = Buffered , Size = 20 - эту строку взял с авр-доса.
If Ischarwaiting() = 1 Then
Input Na
Lcdat 1 , 1 , "Priem= " ; Na , 0 , 255
End If
эти строки с хелпа по Config Serialin.
С этим строками среди всякого мусора вижу свое сообщение и кучу бесконечного мусора. Думаю, что мусор связан в первую очередь с буфером. Использование input тоже не самый лучший вариант. Может у кого есть наработки по коду отправки со сторонних программ строк? Как я подозреваю, мега просто не успевает обработать все символы с уарта. Хз как с этим бороться. Неужели нет ни у кого самописных программ по работе с ком портом? Хотелось бы увидеть реально работающий пример кода на любой языке, желательно конечно семейство сишных языков, но и паскаль какой-нить сойдет, лишь бы код работающий был. Хотя возможно это что-то вроде фишки в шарпе. Но все таки сообщение отправляется, и даже принимается с использованием буфера. Поэтому думаю неплохо бы соорудить всем вместе работающий код для мегаплаты и минибота, чтоб появилась возможность использовать самописные программы, а не только терминал)