|
STM32F207, Проверить USART_SR_RXNE и DR |
|
|
|
Mar 3 2015, 17:44
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
ну какая разница? если у вас значение может смениться в любой момент, сначала сделайте не меняемую копию, а потом вычисляйте.
Потому что, что вам даст в какой последовательности будут выполняться скобки, если при любой последовательности у вас будут любые данные на входе?...
Вот если запрос первых данных, как то меняет вторые, то тогда надо написать в явном виде что за чем и не придумывать.
Потому что мировой запас скобок, строчек, пробелов и переносов строки в целом не ограничен!
Я бы даже вот так if (USART3->SR & USART_SR_RXNE && USART3->DR == 24) не написал, потому что читать неудобно, вот так лучше if ((USART3->SR & USART_SR_RXNE) && (USART3->DR == 24)) а еще лучше вот так if ( ((USART3->SR & USART_SR_RXNE) != 0) && //проверяем то-то (USART3->DR == 24) //проверяем сё-то )
явно указанные условия и коменты повышают читаемость, ИМХО. Опять же написание явных условий еще раз заставляет их обдумать и уменьшает число ошибок вынесенных на тесты.
проверяем что флаг приемник не пуст - стоит - тут явно надо != 0 проверяем что флаг фифо переполнено - нет - тут надо == 0
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|