將采集到的電流放在Var->ADS1248_CON1.Result[0]中,電壓放在Var->ADS1248_CON1.Result[3]中(電壓暫時不用管),想通過usartSendData(Var->ADS1248_CON1.Result[0],(Var->ADS1248_CON1.Result[3]))函數在一幀里發(fā)送,下面是usartSendData函數
const unsigned char header[2] = {0x55, 0xaa};
const unsigned char ender[2] = {0x0d, 0x0a};
void usartSendData(unsigned int current, unsigned int voltage)
{
// 協(xié)議數據緩存數組
unsigned char buf[10] = {0};
int i, length = 0;
// 設置消息頭
for(i = 0; i < 2; i++)
buf[ i] = header[ i]; // buf[0] buf[1]
// 設置采集數據長度與采集值
length = 4;
buf[2] = length; // buf[2]
// 將result[0]的電流值存儲到buf數組的第4、5位
buf[3] = (current >> 8) & 0xFF; // 高位
buf[4] = current & 0xFF; // 低位
// 將result[3]的電壓值存儲到buf數組的第6、7位
buf[5] = (voltage >> 8) & 0xFF; // 高位
buf[6] = voltage & 0xFF; // 低位
// 設置校驗值、消息尾
buf[3 + length] = getDataSum(buf, 7); // buf[7]
buf[3+ length + 1] = ender[0]; // buf[8]
buf[3+ length + 2] = ender[1]; // buf[9]
//發(fā)送字符串數據
USART_Send_String(buf,sizeof(buf));
接收到的電流不對,而且?guī)缀跻恢笔且粋固定的數,請問大家是哪里出錯了?
|