我想把转还的16进制数,赋值给DATA[5],为什么只能赋值16进制的首字母?
void TMotor::CAN_TorgueControl(int32_t iqControl) {
uint8_t TxData[8] = { 0 };
int n = 0; //防止数过大
int m = 0;
int k = 0;
char hex[100];
n = 36000;
if (n == 0) {
cout << '0';
}
while (n > 0) {
m = n % 16;
n /= 16;
//转换为字符串
if (m > 9)
hex[k++] = 'A' + m - 10;
else
hex[k++] = '0' + m;
}
for (int i = k - 1; i >= 0; i--) {
cout << hex[i];
}
TxData[0] = 0xA1;
TxData[1] = 0;
TxData[2] = 0;
TxData[3] = 0;
TxData[4] = 0; //*(uint8_t *)(&iqControl);
TxData[5] = *hex; //*((uint8_t *)(&iqControl)+1);
TxData[6] = 0;
TxData[7] = 0;
// std::cout << "hex 数组 : " << Hex << std::endl;
cout << "*hex:" << *hex << endl;
cout << "shuzu" << hex << endl;
this->send_can_msg(TxData);
}
因为data[5]里只有一个uint8_t ,只能存下一个字母