说明
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); }