Arduino DUE USART - настройка...

Нет ответов
AntonULN
Offline
Зарегистрирован: 21.03.2018
Всем добрый день.
Прошу помочь c Arduino DUE… Требуется передавать данные на комп через serial (пока через стандартные «programming» , но в дальнейшем через отдельный UART-USB)
Помогите с настройками прерывания UART…есть пример для MEGA, хотелось бы, что то подобное для Arduino DUE
 
void USART_Init(int baudrate ) //Функция инициализации USART
{
  /* Set baud rate */
  UBRR1H = baudrate>>8;
  UBRR1L = baudrate;
  //Разрешение на прием и на передачу через USART, прерывания по поступлению и по опустошению
  UCSR1B = (1<<RXCIE1)|(1<<RXEN1);
  UCSR1C = (1<<UCSZ01)|(1<<UCSZ00); //размер слова 8 разрядов
  sei();
} // USART_Init

void setup() {           
  // initialize the digital pin as an output.
  pinMode(ledpin, OUTPUT);
USART_Init(103);// число 103 соответствует baudrate 9600 при 16MHz. смотреть datasheet нa ATMega 2560
}

//Обрабатываем прерывание по поступлению байта
ISR(USART1_RX_vect)
{
  s[i]=UDR1;//принимаем байт в массив char
  i++;
  if (i == 2)//если приняли 2 байта
  {
    if (s[0] == 'o' and s[1] == 'n')//проверяем что приняли, если команду "on"
      {
        digitalWrite(ledpin, HIGH);//зажигаем светодиод
      }
    if (s[0] == 'o' and s[1] == 'f')//проверяем что приняли, если команду "of"
      {
        digitalWrite(ledpin, LOW);//гасим светодиод 
      }
    // сбрасываем все
    i=0;
    s[0]='0';
    s[1]='0';
  }