hey, can u provide a link / code for the read function? thanks On Monday, December 16, 2013 2:37:08 PM UTC+5:30, Andrei wrote: > > Hi, > > Thanks for help Andrey, do you happen to know how to display binary value > READ function . At the moment when I use read function, shell displays > corresponding ascii symbol (character) as the read. If I send 0x43, > beaglebone black read is displaying the 'C' on a shell as a read in, but is > there a way of displaying hexadecimal on binary value on the read. > > Thanks, > > > On 6 December 2013 14:25, Andrey Nechypurenko > <[email protected]<javascript:> > > wrote: > >> Hi, >> >> > write (fd, "AA", 4); >> >> you are sending string, not a binary data. Try the following instead: >> >> char buf[] = {0xAA}; >> >> write (fd, buff, sizeof(buff)); >> >> HTH, >> Andrey. >> >> >> On 6 December 2013 13:44, Andrei <[email protected] <javascript:>> >> wrote: >> > >> > Hello, I need a help with the UART, more precisly with the c code. When >> the >> > following c script goes to write () function, it sends the data over to >> the >> > uart and I can see the output on the oscilloscope, but the problem is >> that >> > it sends it in ASCII, which is not what I want it to do. on the Linux >> shell >> > I usually used "echo -en \\xAA > /dev/ttyO4" and it did the job. But I >> want >> > it to the job using the C code. Hopefully somebody can help me. >> > >> > #include <iostream> >> > >> > >> > #include <cstdio> >> > >> > >> > #include <unistd.h> >> > >> > >> > #include <stdlib.h> >> > >> > >> > #include <string> >> > >> > >> > #include <termios.h> >> > >> > >> > #include <fcntl.h> >> > >> > >> > #include <sys/signal.h> >> > >> > >> > >> > >> > #define BAUDRATE B9600 >> > >> > >> > #define DEVICE "/dev/ttyO4" >> > >> > >> > #define _POSIX_SOURCE 1 >> > >> > >> > >> > >> > #define FALSE 0 >> > >> > >> > #define TRUE 1 >> > >> > >> > volatile int STOP=FALSE; >> > >> > >> > int wait_flag=FALSE; >> > >> > >> > >> > >> > using namespace std; >> > >> > >> > >> > >> > void signal_handler_IO (int status){ >> > >> > >> > >> > >> > cout << "received SIGIO signal "<< endl; >> > >> > >> > wait_flag = FALSE; >> > >> > >> > } >> > >> > >> > >> > >> > int main() >> > >> > >> > { >> > >> > >> > int fd, c, res; >> > >> > >> > struct termios oldtio, newtio; >> > >> > >> > struct sigaction saio; >> > >> > >> > char buffer [255]; >> > >> > >> > >> > >> > system ("echo BB-UART4 > /sys/devices/bone_capemgr.8/slots"); >> > >> > >> > >> > >> > fd = open (DEVICE, O_RDWR | O_NOCTTY | O_NONBLOCK); >> > >> > >> > if (fd <0) {perror(DEVICE); exit (-1);} >> > >> > >> > >> > >> > /*install the siganl handler before making the device ansynhronous >> */ >> > >> > >> > saio.sa_handler = signal_handler_IO; >> > >> > >> > saio.sa_mask.__val[0] = 0; >> > >> > >> > saio.sa_mask.__val[1] = 0; >> > >> > >> > saio.sa_mask.__val[2] = 0; >> > >> > >> > saio.sa_mask.__val[3] = 0; >> > >> > >> > saio.sa_flags = 0; >> > >> > >> > saio.sa_restorer = NULL; >> > >> > >> > sigaction(SIGIO, &saio, NULL); >> > >> > >> > >> > >> > /* Allow the process to receive SIGIO */ >> > >> > >> > fcntl(fd, F_SETOWN, getpid()); >> > >> > >> > /* Make the file descriptor ansynchronous */ >> > >> > >> > fcntl(fd, F_SETFL, FASYNC); >> > >> > >> > >> > >> > tcgetattr(fd,&oldtio); >> > >> > >> > >> > >> > newtio.c_cflag = BAUDRATE | CS8 | CLOCAL | CREAD; >> > >> > >> > newtio.c_iflag = IGNPAR | ICRNL; >> > >> > >> > newtio.c_oflag = 0; >> > >> > >> > newtio.c_lflag = ICANON; >> > >> > >> > newtio.c_cc[VMIN]=1; >> > >> > >> > newtio.c_cc[VTIME]=0; >> > >> > >> > /* Clean the modem line and activate the settings for the port */ >> > >> > >> > tcflush(fd,TCIFLUSH); >> > >> > >> > tcsetattr(fd,TCSANOW,&newtio); >> > >> > >> > >> > >> > //------------ WRITE >> > >> > >> > >> >> >> >> c = write (fd, "AA", 4); >> >> if ( c < 0) >> >> fputs ("write() of 4bits failed!\n", stderr); >> > >> > >> > >> > >> > //--------------READ >> > >> > >> > >> > >> > >> > >> > >> > while(STOP==FALSE) { >> > >> > >> > >> > >> > usleep(1000000); >> > >> > >> > putchar ('*'); fflush(stdout); >> > >> > >> > >> > >> > if(wait_flag==FALSE) { >> > >> > >> > buffer[res]=NULL; >> > >> > >> > res = read (fd,buffer,sizeof(buffer)); >> > >> > >> > >> > >> > printf(":%s :%d\n", buffer, res); >> > >> > >> > if (res==1) STOP=TRUE; >> > >> > >> > >> > >> > wait_flag = TRUE; >> > >> > >> > } >> > >> > >> > >> > >> > } >> > >> > >> > >> > >> > >> > >> > //restore old port settings >> > >> > >> > tcsetattr(fd,TCSANOW, &oldtio); >> > >> > >> > >> > >> > close (fd); >> > >> > >> > return 0; >> > >> > >> > } >> > >> > >> > >> > -- >> > For more options, visit http://beagleboard.org/discuss >> > --- >> > You received this message because you are subscribed to the Google >> Groups >> > "BeagleBoard" group. >> > To unsubscribe from this group and stop receiving emails from it, send >> an >> > email to [email protected] <javascript:>. >> > For more options, visit https://groups.google.com/groups/opt_out. >> >> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "BeagleBoard" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/beagleboard/I26rrzcpr-g/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> > >
-- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
