将采集到的电流放在Var->ADS1248_CON1.Result[0]中,电压放在Var->ADS1248_CON1.Result[3]中(电压暂时不用管),想通过usartSendData(Var->ADS1248_CON1.Result[0],(Var->ADS1248_CON1.Result[3]))函数在一帧里发送,下面是usartSendData函数
const unsigned char header[2] = {0x55, 0xaa};
const unsigned char ender[2] = {0x0d, 0x0a};
void usartSendData(unsigned int current, unsigned int voltage)
{
// 协议数据缓存数组
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]
//发送字符串数据
USART_Send_String(buf,sizeof(buf));
接收到的电流不对,而且几乎一直是一个固定的数,请问大家是哪里出错了?
|