образец кода UART для чтения из UART2 на ELB-REV4 - PullRequest
0 голосов
/ 01 июня 2019

Мне нужен пример кода c для чтения из UART2 со скоростью 3 Мбит / с на устройстве ELB-REV4.

Я попробовал пример кода, но он не работал

Я ожидаю, что скорость передачи данных или UART2 будет 3 Мбит / с, что я могу увидеть с помощью осциллографа.

проблема в том, как только я установил скорость передачи UART2 на 3000000. И на осциллографе я вижу, что скорость передачи все еще равна 115200.

1 Ответ

0 голосов
/ 01 июня 2019

На ELB-REV4 / dev / ttyS2 представляет UART2, и используйте / dev / ttyS0 для UART0, используйте приведенный ниже код, который выводит 101010, который вы можете видеть на осциллографе, и измеряет скорость передачи данных.

 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <fcntl.h>
 #include <termios.h>
 #include <ctype.h>
 #include <errno.h>

 struct termios options;
 int fd;
 int status;
 char buf[10];
 unsigned char rx_buffer[10];
 int main(void) 
        {
           fd = open("/dev/ttyS2", O_RDWR | O_NOCTTY | O_NDELAY);



      if (fd < 0) 
        {
           printf("Error opening serial port\n");
           exit(1);
        }



      bzero( & options, sizeof(options));
        options.c_cflag = B3000000 | CS8 | CLOCAL | CREAD | IGNPAR | PARODD | PARENB; //8bit, Odd parity, 
        tcflush(fd, TCIFLUSH);
        tcsetattr(fd, TCSANOW, & options);

    while (1) 
    {
buf[0] = 0x55; //pattern
status = write(fd, & buf[0], 1);

    if (status < 0) 
    {


     printf("Write error - %s \n", strerror(errno));
        exit(1);
    }


     usleep(1000000);
        printf("Sending 0x55 to /dev/ttyS2 port\n");
    }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...