Вы уверены в том, что собираетесь отправлять данные символа на интерфейс RS232 для этого? Это похоже на двоичные последовательности для меня.
Вместо:
MSCommProj.Output = "3F 89 01 50 57 0A" & Chr$(13)
Я бы посмотрел на передачу двоичных данных таким образом:
MSCommProj.Output = chr$(63) & chr$(137) & chr$(1) & chr$(80) & chr$(87) & chr(10)
Вы заметите, что в конце нет chr$(13)
, спецификация не требует этого.
Если вы хотите узнать, каковы преобразования для этих шестнадцатеричных значений, запустите калькулятор Windows, измените представление на научное, переключитесь в шестнадцатеричный режим, введите значение, переключитесь в десятичный режим.
Или вы можете загрузить ASCII таблицу для этой цели. Или посмотрите одно из моих объемных сочинений на эту тему здесь .