переключение контактов Rx, Tx после Serial.begin
Чего следует ожидать при запуске следующей программы на Arduino Uno?
void setup()
{
Serial.begin(9600);
DDRD |= 0b11;
}
void loop()
{
PORTD |= 0b11;
delay(100);
Serial.print("ABCD");
PORTD &= ~0b11;
delay(100);
Serial.print("DEFG\n");
}
При использовании Serial.begin() контакты PD0, PD1 могут быть настроены как контакты UART. После этого, если используется DDR, контакты настроены как GPIO или они все еще являются контактами UART Rx, Tx?
@Nownuri, 👍0
Обсуждение1 ответ
Как всегда, ответ находится в таблице данных:
- TXD/PCINT17 – порт D, бит 1
TXD, передача данных (вывод данных для USART). Когда передатчик USART включен, этот вывод настраивается как выход независимо от значения DDD1. PCINT17: Источник прерывания изменения контакта 17. Вывод PD1 может служить источником внешнего прерывания.
- RXD/PCINT16 – порт D, бит 0
RXD, прием данных (контакт ввода данных для USART). Когда приемник USART включен, этот вывод настраивается как вход независимо от значения DDD0. Когда USART принудительно делает этот вывод входным, подтягиванием все равно можно управлять с помощью бита PORTD0. .
Что будет при попытке установить выходной уровень на выводе TX, покажет только эксперимент. Это не определено в таблице данных (потому что кто будет это делать?)
- Могу ли я отключить контакт TX, установив для него режим INPUT, при этом получая данные на контакт RX UART?
- Nodemcu ESP12-E (ESP8266), Могу ли я перепрограммировать, если контакты UART определены как GPIO?
- Можем ли мы использовать СВЯЗЬ UART с MCP23017?
- NodeMCU ESP8266
- NodeMCU - Vin контакт как выход 5V?
- Использовать все контакты как цифровые входы/выходы
- Что такое ICSP pin (разъём)?
- Сколько датчиков может поддерживать один модуль Arduino?
что происходит, когда вы запускаете эскиз?, @jsotola