Arduino DUE USART - настройка...
- Войдите на сайт для отправки комментариев
Пнд, 07/05/2018 - 14:12
Всем добрый день.
Прошу помочь 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';
}