Интересная багофича в USART у STM32F103RET (подозреваю, что у всех
STM32 такое). Уж сколько лет я работаю с STM32, что кажется - ничем меня не удивишь, особенно в USART. Ан нет!!!
Сегодня, копаясь в отладчике с подключенным к ногам USART осциллографом увидел ТАКОЕ!!!
Имеем - включенный USART2->CR1 = USART_CR1_UE | USART_CR1_TE | USART_CR1_RE
Имеем - настроенные выводы PA2, PA3 (USART2 TX, RX). TX настроен на Alternate PushPull, RX настроен на Input PullUp
Казалось бы - после всего этого на выходе TX должна появиться лог.1 ???
Нифига!!! Нога PA2 так и остается в Z-состоянии. И будет таковым до тех пор, пока в регистр BaudRate не прописать ненулевое значение, причем значение должно быть >= 8 !!!
При BRR <= 7 выход TX так и остается в Z-состоянии.
Не сильно очевидно, но если подумать - то вполне логично. В даташитах явного упоминания такой ситуации не нашел.