Contrôle d'accéléromètre, 2013/2014, TD1

De Wiki d'activités IMA

Ecriture du code C qui envoie un octet nul au port série puis récupère 4 octets sur le même port série :

// Serial library

//// // Include files ////

  1. include <stdio.h>
  2. include <errno.h>
  3. include <unistd.h>
  4. include <stdlib.h>
  5. include <fcntl.h>


  1. include "serial.h"

//// // Constants ////

  1. define SERIAL_DEVICE "/dev/ttyUSB0"

//// // Functions ////

// // Open serial port device // int serialOpen(char *device,int mode){ int flags = (mode==SERIAL_READ?O_RDONLY:(mode==SERIAL_WRITE?O_WRONLY:O_RDWR)); int fd = open(device,flags|O_NOCTTY); if(fd<0){ perror(device); exit(-1); } return fd; }

// // Serial port termination // void serialClose(int fd){ close(fd); }


//// // Global variables ////

//// // Main function ////

int main(void){ int c=0; int sd=serialOpen(SERIAL_DEVICE,SERIAL_BOTH); if(write(sd,&c,sizeof(char))!=1){ perror("main.write"); exit(-1); } int i; for(i=0;i<4;i++){

 if(read(sd,&c,sizeof(char))!=1){ perror("main.read"); exit(-1); }
 printf("%02x\n",c);
 }

serialClose(sd); exit(0); }