在ELB-REV4器件上,我需要示例c代码来以3Mbps的波特率从UART2读取。
我尝试了一些示例代码,但没有用
我希望使用示波器可以看到数据波特率或UART2为3Mbps。
问题一出,我将UART2波特率设置为3000000。在示波器上,我看到波特率仍然是115200。
答案 0 :(得分:0)
在ELB-REV4上,/ dev / ttyS2代表UART2,对UART0使用/ dev / ttyS0,请使用下面的代码输出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");
}
}