c - Linux serial port - wrtie( ) byte to the target device through serial port -


unsigned char cmd[] = {'a', 't', '+', "0x07", "0x08", 'd', 'f', "0xa6"}; 

to write command target device, expect write byte

41 54 2b 07 08 44 46 a6  

accordingly.

however, actual bytes written device

41 54 2b b8 bb 44 46 

and it's obvious wrong @

0x07 0x08 0xa6 

how write bytes expect have in above example ?

----- write function -------

void writetodevice(){ unsigned char cmd[]={'a', 't', '+', "0x07", "0x08", 'd', 'f', "0xa6"}; int n = write(fd,&cmd,8);  for(p=0;p<8;p++){     printf("bytes written: %02x \n", cmd[p]); }  if(n<0){     printf("write error \n"); } else{     printf("%d bytes written \n", n); }  }; 

compiler warning

warning: (near initialization ‘cmd[3]’) [enabled default] warning: initialization makes integer pointer without cast [enabled default] 

instead of "0x07", "0x08", etc use '\x07', '\x08', etc.


Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -