在做uart串口中断实验中,想发送比较长的数据(485的指令)
更改主函数如下
int main(void)
{
init_intr_sys();
XUartPs_Recv(&UartPs, RecvBuffer, TEST_BUFFER_SIZE);
while(1){
XUartPs_Send(&UartPs,send1,16);
sleep(1);
XUartPs_Send(&UartPs,send2,16);
sleep(1);
XUartPs_Send(&UartPs,send3,16);
sleep(1);
XUartPs_Send(&UartPs,send4,16);
sleep(1);
}
return 0;
}
由于串口发送的是ASCII码格式的,所以事前把要发送的数据转换成了ASCII格式
//static u8 send1[32]="303032303037343030323D3F3130370D" ;
static char send1[32]="0020074002=?107\r";
//static u8 send2[32]="303033303033303930323D3F3130390D" ;
static char send2[32]="0030030902=?109\r" ;
//static u8 send3[32]="303033303033333030323D3F3130330D" ;
static char send3[32]="0030033002=?103\r" ;
//static u8 send4[32]="303037303033303930323D3F3131330D" ;
static char send4[32]="0070030902=?113\r" ;
但是我想知道如何直接定义比较长的16进制数据,以及如何更改发送的数据格式,让其发送16进制而不是ASCII格式的数据。
|