c语言,关于16串口发送。

定义一个union { unsigned int I;无符号字符AC[4];} udata

udata . I = 1;

如果(udata.ac[0]== 1) //小终端,则从低到高发送。

{

udata . I = 123456789;

int j = 0;

while(j & lt;4 )

{

send _ data _ UART(udata . AC[j]);

j++;

}

}

Else //大端机,从高到低发送

{

udata . I = 123456789;

int j = 4;

while(j->;0 )

{

send _ data _ UART(udata . AC[j]);

}

}

纠正楼上应采用的第一种方法是体位和:

无符号int val = 123456789;

发送数据UART(val & amp;0x ff);

send _ data _ UART((val & gt;& gt8)& amp;0x ff);

send _ data _ UART((val & gt;& gt16);0x ff);

send _ data _ UART((val & gt;& gt24)& amp;0x ff);

请把贴纸给楼上。我认为方法一效果更好。