繁体   English   中英

Xenomai串口错误数据

[英]Xenomai serial port wrong data

我正在尝试通过无线电apc220从C-xenomai程序向arduino Mega发送和发送。

我在xenomai程序中创建了一个要发送的任务,一个要阅读的任务。 arduino端读取并写入串行。

波特率均相等,并尝试使用9600和19200,但是接收到的数据是随机数据,而不是发送的值。

C代码(这在任务中带有“ rt_task_set_periodic(NULL,TM_NOW,TM_INFINITE);”,并且在创建任务时的优先级为99)。 bufferMotorX的值不断变化。

strcpy(buffer,bufferMotor1);
strcat(buffer,bufferMotor2);
strcat(buffer,bufferMotor3);
strcat(buffer,bufferMotor4);

fprintf(stderr,"sending...%s\n",buffer);

write(apcFd, buffer, CONTROLLER_BUFFER_SIZE);

Arduino方面:

      if (Serial.available() > 0) {
            // read the incoming byte:
            for (int i=0; i < 12; i++)
             {
                inputByte=Serial.read();
                inputBuffer[i]=inputByte;

             }  

            bufferMotor1[0]=inputBuffer[0];
            bufferMotor1[1]=inputBuffer[1];
            bufferMotor1[2]=inputBuffer[2];

            /*bufferMotor2[0]=inputBuffer[3];
            bufferMotor2[1]=inputBuffer[4];
            bufferMotor2[2]=inputBuffer[5];

            bufferMotor3[0]=inputBuffer[6];
            bufferMotor3[1]=inputBuffer[7];
            bufferMotor3[2]=inputBuffer[8];

            bufferMotor4[0]=inputBuffer[9];
            bufferMotor4[1]=inputBuffer[10];
            bufferMotor4[2]=inputBuffer[11];*/
            Serial.print("I received: ");
            Serial.println(bufferMotor1);

            motor1=atoi(bufferMotor1);

关于我在做什么错的任何想法吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM