在各种设备间的传输协议或者通信协议中,一般对数据的字段类型都各不相同,比如BCD码,BIN码,ASCII码等。下面接收几种字段类型定义的实例
1.BCD码
定义一个16位机器编码 2018041912345678
uint8_t Dev[8] ;
一般两种存储方式:
大端模式:高位存在低位地址上
Dev[0]=0x20; Dev[1]=0x18; Dev[2]=0x04; Dev[3]=0x19; Dev[4]=0x12; Dev[5]=0x34; Dev[6]=0x56; Dev[7]=0x78;
小端模式:低位存在高位地址上
Dev[0]=0x78; Dev[1]=0x56; Dev[2]=0x34; Dev[3]=0x12; Dev[4]=0x19; Dev[5]=0x04; Dev[6]=0x18; Dev[7]=0x20;
2.BIN码
定义一个费用变量
uint16_t money;
uint8_t buf[128];
money=0x1234;
一般两种存储方式:
大端模式:高位存在低位地址上
buf[0]=0x12; buf[1]=0x34
小端模式:低位存在高位地址上
buf[0]=0x34; buf[1]=0x12
3.字符串
都是以ASCII码形式上传
设备号
const char temp[]="AY03B000017090003A"; uint8_t buf[],len; len=sprintf((char *)buf, "%s",temp);
这是大端存储方式
如果小端存储方式还有进行数组掉头
uint8_t datbuf[100]; strchghead(datbuf,(uint8_t *)&buf,len) void strchghead(unsigned char *dbuf,unsigned char *sbuf,unsigned int slen) { unsigned int i; for(i=0;i<slen;i++) { dbuf[i] = sbuf[slen-i-1]; } }