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