ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
1137099
il-2 (08.10.2021 09:21, просмотров: 1292)
Интересная багофича в 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-состоянии.

Не сильно очевидно, но если подумать - то вполне логично. В даташитах явного упоминания такой ситуации не нашел.