Estoy enfrentando un problema extraño con mi motor paso a paso cuando intento controlarlo con mi computadora Linux.
Tan pronto como el puerto serie se abre desde mi código para hacer girar el motor paso a paso, mi terminal de comando comienza a mostrar la salida en mayúsculas y la salida que obtengo es:
HE ENTRADO EL PRINCIPAL LOOPSM, 500,0, -400
LECTURA: ADVERTENCIA: APAGAR LA DESCARGA DE SALIDA SAIRAM @ GTX: ~ / OPENCV / TRUNK / OPENCV / SAMPLES / C $
Después de eso, tengo que apagar el terminal e iniciar una nueva pantalla de terminal para controlar mi motor paso a paso.
También adjunto el código que habla al puerto serial de la computadora:
void open_port(char str3[])
{
int fd; int n;
struct termios options;
/*
* Get the current options for the port...
*/
/*
* Set the baud rates to 19200...
*/
cfsetispeed(&options, B9600);
cfsetospeed(&options, B9600);
options.c_cflag &= ~PARENB;
options.c_cflag &= ~CSTOPB;
options.c_cflag &= ~CSIZE;
options.c_cflag |= CS8;
// options.c_cflag &= ~CNEW_RTSCTS;
/*
* Enable the receiver and set local mode...
*/
/*
* Set the new options for the port...
*/
tcsetattr(fd,TCSANOW, &options);
/* File descriptor for the port */
fd = open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1)
{
/*
* Could not open the port.
*/
perror("open_port: Unable to open /dev/ttyACM0 - ");
}
else
fcntl(fd, F_SETFL, 0);
//str1
//strcpy(str1,"EM,0,0");
strcat(str3,"\r\n");
printf("%s\n", str3);
n = write(fd,str3,20);
if (n < 0)
fputs("write() of 4 bytes failed!\n", stderr);
close(fd);
}
No soy un experto en programación y, por lo tanto, no pude entender qué está pasando