Bob Brandt Ответов: 1

Последовательный порт не посылает номер "255" на микрочип pic18f2550


vb express 2010
Я могу отправить любое число, кроме "255", на микрочип pic18f2550.
Таким образом, используются все восемь битов. com1.ReadTimeout = 10000
baudRate = 128000 parity = IO.Ports.Равенство.Нет dataBits = 8
сом1 = мой.Компьютер.Порты.OpenSerialPort(порт, скорость передачи данных, четность, биты данных)
Dim processer_CMD() As Byte = {w}
com1.Write(processer_CMD, 0, processer_CMD.Length) РАБОТАЕТ НОРМАЛЬНО -от А до Я."
Нарезание резьбы.Нить.Сон(35)

Dim process_CMD() как байт = {255} ======== НЕ РАБОТАТЬ = 255 "11111111"
com1.Write(process_CMD, 0, process_CMD.Length)
Нарезание резьбы.Нить.Сон(35)

Dim processs_CMD() как байт = {247} ======== РАБОТАЕТ НОРМАЛЬНО "От 0 до 254" "11111110"
com1.Write(processs_CMD, 0, processs_CMD.Length)
Нарезание резьбы.Нить.Сон(35)

Получает все номера штрафа, включая "255"

Что я уже пробовал:

Пробовал разные способы отправки, такие как Assci 255= :y ;; Threading.Нить.Спать
Изменено время и задержка в микрочипе. Но это не имеет никакого смысла, так как многие
числа используют число "1" в начале и конце.("11110111"= 247) "11111111" = 255

1 Ответов

Рейтинг:
12

OriginalGriff

Начните с проверки на другом конце: последовательные порты обычно не различают символы и отказываются от некоторых, поэтому более вероятно, что другой конец отбрасывает их по какой - то причине-проверьте, не воспринимается ли он как условие "разрыва" (что обычно требует ошибки кадрирования в том, что стоп-бит будет неправильным, но если у вас неправильная скорость передачи данных, четность или что-то подобное, то это возможно).)

Поэтому начните с повторения символов обратно из PIC и проверьте, что ваше программное обеспечение получает их все - отправьте каждый возможный байт и подтвердите, что все они в порядке, прежде чем вы начнете предполагать какое-то странное свойство класса SerialPort.


Bob Brandt

Мне очень жаль, что вы правы, я забыл, что раньше у меня были проблемы, которые посылали бы ложные 255 результатов в моем pic18f2550. Поэтому я ввел в код функцию, которая отменяла любые ложные 255, но она также отменяла и те, которые мне позже понадобились.

OriginalGriff

Мы все там были! :смеяться: