Уже почти неделю мучаю USART на STM32L-Discovery, а он настойчиво шлет билиберду в терминал.

Брал уже готовые проекты отсюда
http://chipspace.ru/stm32-usart-2/
http://chipspace.ru/stm32-usart-4/
и отсюда
http://easystm32.ru/interfaces/15-uart-in-stm32-part-1
результат - вывод в терминал правильного количества символов но совершенно левых.
Что делал:
1) пытался ловить закономерность - не поймал.
2) игрался с настройками терминала
3) менял настройки передачи сообщения в коде проекта
4) менял переходники USB-RS232 - результат одинаков со всеми
5) проекты заливал как с использованием библиотек, так и с прямой работой с регистрами.
Один успех все же есть. Здесь http://chipspace.ru/stm32-usart-4/ выложен проект, в котором в терминал отсылаются данные, полученные из него. Так вот, если у меня отправить комбинацию
"\пробел\0111", получим в терминале
"02 31 31 31 00"
Если отправим "\пробел\012345", получим
"02 31 32 33 34 35 00" - есть соответствие с ASCII таблицей.
То есть с горем пополам что-то работает. Далее
6) Смотрел осциллографом выходы на пинах платы, когда отсылаю один байт. Никакого соответствия между числом которое отправляю в коде и осциллограммой. Вместо 00110001 идет 10001100. И вдобавок длительность бита в 2 раза меньше чем должна быть (~50us вместо 104us, скорость 9600). Увеличил скорость приема в терминале до 19200 - выводит нули.....

На форумах пишут, что все поднимается на ура.

Прошу помощи, где рыть? Из-за него дальше двигаться не могу.
Если что, спасибо огромное заранее.