PDA

Просмотр полной версии : Заморока SysLibCom



Дмитрий Артюховский
10.10.2008, 16:22
Выявилась очень странная штука - при передаче текстовой строки по RS-232 через COM4 все хорошо работает до тех пор, пока не попадается символ со старшими битами (маленькие русские в кодировке виндов). После этого символа - все последующие символы передаются с установленным старшим битом!!!!

Филоненко Владислав
11.10.2008, 09:01
Проверьте, проблема скорее всего с гиперерминалом (его настройками). 7-битный режим не использовали?

Дмитрий Артюховский
11.10.2008, 23:59
))) там нет гипертерминала. ПЛК передает данные микроконтроллеру в котором этого просто нет. Передается строка в которой последний байт контрольная сумма (которая может иметь старшие биты). Пока не было маленьких русских букв (большие были) все работало. Прием выполняется вроде бы без ошибок. Символы передаются, в случае неправильной настройки длины байта этого бы не было, но после маленьких русских букв пробелы (20h) превращаются в забой (a0h), а большие русские буквы после маленьких вообще отменяют передачу строки. Но последующие вызовы -
SysComWrite( com_num, ADR(snd_str), LEN(snd_str), 0 ); - проходят (ну если в строке нет "страшных символов" )