Tengo un problema al ver los caracteres escritos en / dev / ttyS8 en mi terminal de PC con este código C:
void main (void)
{
int file, i;
unsigned char receive[100]; // declare a buffer for receiving data
char buf[20];
size_t nbytes;
ssize_t bytes_written;
if ((file = open("/dev/ttyS8", O_RDWR))<0)
{
printf("UART: Failed to open the file.\n");
return;
}
//
struct termios options; // the termios structure is vital
tcgetattr(file, &options); // sets the parameters associated with file
// Set up the communications options:
// 9600 baud, 8-bit, enable receiver, no modem control lines
options.c_cflag = B9600 | CS8 | CREAD | CLOCAL;
options.c_iflag = IGNPAR | ICRNL; // ignore partity errors, CR -> newline
tcflush(file, TCIFLUSH); // discard file information not transmitted
tcsetattr(file, TCSANOW, &options); // changes occur immmediately
strcpy(buf, "This is a test\n");
nbytes = strlen(buf);
while (1)
{
bytes_written = write(file, buf, nbytes);
sleep(10);
}
close(file);
}
Probé si tal vez el tipo de cable serial es un problema, pero se comporta de la misma manera. / dev / ttyS8 es mi salida UART, pero no puedo determinar qué estoy haciendo mal. Cualquier idea sobre qué probar será útil o sobre qué prestar atención cuando intente hacer algo como esto.
¡Gracias por tu ayuda!