×

stm32F407VET6--------计算浮点型,进入硬件错误

错误调试

stm32F407VET6--------计算浮点型,进入硬件错误

zxjy辉 zxjy辉 发表于2025-04-11 浏览546 评论0

通过函数传入一个指针,在函数中计算完毕,将值赋值给这个指针,发现,只要涉及小数计算的时候,直接进入硬件错误,去掉小数部分的计算,则一点问题都没有

  1. 问题代码:
    // 读取电压(单位:mV)  电压值需按公式转换:VCELL = (data[0] << 8 | data[1]) * 78.125μV 
    HAL_StatusTypeDef MAX17048_ReadVoltage(uint16_t *voltage) {
        uint8_t reg = REG_VCELL;
        uint8_t data[2];
        HAL_StatusTypeDef status = HAL_I2C_Master_Transmit(&hi2c2, MAX17048_ADDR, &reg, 1, 1000);
        if (status != HAL_OK) return status;
        status = HAL_I2C_Master_Receive(&hi2c2, MAX17048_ADDR, data, 2, 1000);
    		*voltage = (data[0] << 8 | data[1])*78.125/1000;
        return status;
    }