xiaocainiao_8 2023-04-14 10:39 采纳率: 0%
浏览 11

为什么只能赋值16进制的首字母?

我想把转还的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);

}
  • 写回答

1条回答 默认 最新

  • 於黾 2023-04-14 10:52
    关注

    因为data[5]里只有一个uint8_t ,只能存下一个字母

    评论

报告相同问题?

问题事件

  • 创建了问题 4月14日