Запись и чтение данных на плате разработчика - PullRequest
0 голосов
/ 15 мая 2018

Я использую плату разработки sama5d3. Я пытаюсь читать и записывать данные на устройство, подключенное к USB-порту. 2.i могу записать данные на устройство.

3.Как я могу прочитать данные с устройства?

4.Как узнать, записываются ли данные на устройство? `

int main()

{

 char fd1,retval,speed;

 struct termios usb_parm;

 fd1=open("/dev/ttyACM0",O_RDONLY|O_WRONLY|O_NONBLOCK|O_NOCTTY);

  if(fd1>0)
  {
  printf("Device detected\n");        
  }
  else
  {
  printf("Port free\n");
  return -1;
  }

  ioctl(fd1,TCSETS2,&usb_parm);
  usb_parm.c_cflag &=~CBAUD;
  usb_parm.c_iflag=speed;
  usb_parm.c_oflag=speed;
  usb_parm.c_cflag |=BOTHER;                                   
  retval=ioctl(fd1,TCSETS2,&usb_parm);
   printf("retval=%d\n",retval);
  tcflush(fd1,TCIFLUSH);                                      
  tcsetattr(fd1,TCSANOW,&usb_parm);                       
  tcgetattr(fd1,&usb_parm);                                    

 char write_buff[]="q,e";
 int bytes_written=0;

 bytes_written =write(fd1,write_buff,sizeof(write_buff));
 printf("written to ttyUSB0=%s\n",write_buff);
 printf("Bytes written to ttyUSB0=%d\n", bytes_written);

char read_buff[]={"gdfjhtfgjif"};
int  bytes_read=0;
int byteavailable=0;

tcflush(fd1, TCIFLUSH); 
ioctl(fd1,FIONREAD,&byteavailable);
memset(read_buff,0,sizeof(read_buff));
if(byteavailable>0)
{   
bytes_read=read(fd1,read_buff,sizeof(read_buff));
}
else
{
printf("error\n");
return -1;
} 
printf("Read buff=%s\n",read_buff);
printf("Bytes read=%d\n",bytes_read);

}

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