生成ASICII码用于命令反馈

202 阅读1分钟

说明

Sprintf 功能 把格式化的数据写入某个字符串缓冲区。

头文件

stdio.h

原型

int sprintf( char buffer, const charformat, [ argument] … );

转换字符

%% 印出百分比符号,不转换。

%c 整数转成对应的 ASCII 字元。

%d 整数转成十进位。

%f 倍精确度数字转成浮点数。

%o 整数转成八进位。

%s 整数转成字符串。

%x 整数转成小写十六进位。

%X 整数转成大写十六进位

代码

void SendRepayPacket(char*replay_cmd,unsigned int pCmdData)

{ unsignedchar pPacket[20];

     unsignedshort wdLen = 0;

     unsignedchar btCheckSum = 0;

     unsignedchar i;

    

     unsignedchar pCmdData_buffer[20];

    

     unsignedshort sendBufferLen = 0;

    

     sprintf(pCmdData_buffer,"%s,%d,",replay_cmd,pCmdData);

     wdLen= strlen(pCmdData_buffer);

    

     pPacket[0]= DALI_STX;

     pPacket[1]= (wdLen + 1) & 0xFF;

     pPacket[2]= (wdLen + 1) >> 8;

     pPacket[3]= Address;

    

     for(i= 0;i<wdLen;i++)

     {
               pPacket[4+ i] = pCmdData_buffer[i];

     }       

    

     for(i=0;i< wdLen;i++)

     {
               btCheckSum+= pCmdData_buffer[i];

     }

    

     pPacket[4+ wdLen] = btCheckSum;

     pPacket[5+ wdLen] = DALI_ETX;

    

     sendBufferLen= wdLen + 5 + 1;

     MAX3485_UART_SendData(pPacket,sendBufferLen);

}

void SendRepayPacket_2(char*replay_cmd,unsigned int pCmdData,unsigned int pCmdData1)

{ unsignedchar pPacket[20];

     unsignedshort wdLen = 0;

     unsignedchar btCheckSum = 0;

     unsignedchar i;

    

     unsignedchar pCmdData_buffer[20];

    

     unsignedshort sendBufferLen = 0;

    

     sprintf(pCmdData_buffer,"%s,%d,%d,",replay_cmd,pCmdData,pCmdData1);

     wdLen= strlen(pCmdData_buffer);

    

     pPacket[0]= DALI_STX;

     pPacket[1]= (wdLen + 1) & 0xFF;

     pPacket[2]= (wdLen + 1) >> 8;

     pPacket[3]= Address;

    

     for(i= 0;i<wdLen;i++)

     {
               pPacket[4+ i] = pCmdData_buffer[i];

     }       

    

     for(i=0;i< wdLen;i++)

     {
               btCheckSum+= pCmdData_buffer[i];

     }

    

     pPacket[4+ wdLen] = btCheckSum;

     pPacket[5+ wdLen] = DALI_ETX;

    

     sendBufferLen= wdLen + 5 + 1;

     MAX3485_UART_SendData(pPacket,sendBufferLen);

}