Мне нужны 9-битные данные UART на Arduino Uno, поэтому мне нужно выполнить некоторую ручную настройку Arduino UART. По сути, я не понимаю эту строку примера кода (из таблицы данных), она предназначена для включения выводов UART Tx и Rx на Arduino, что делается на простом и понятном машинном языке, просто означает загрузку немедленного значения в UCSR0B
(регистр управления и состояния USART B) таким образом, что бит RXE (разрешение приема) и бит TXE (разрешение передачи) имеют высокий уровень. Другими словами, загрузите 00011000
в USCR0B
.
Вот пример кода C из таблицы данных:
USCR0B = (1 << RXE) | (1 << TXE);
_BV
(битовое значение), который скрывает смещение, в результате чего код, по мнению некоторых, лучше читается:USCR0B = _BV(RXE) | _BV(TXE)
- person   schedule 10.09.20151 << n
— это де-факто стандартный способ маскирования одного бита. - person Lundin   schedule 10.09.2015