小编Pet*_*er1的帖子

将4个整数的结构转换为浮点数

我是编程新手,我在指针和类型转换方面不强,所以我需要一些帮助.

我正在使用IAR Workbench和STM32L475.我试图将结构中的4个字节转换为浮点数,然后从Eeprom加载它们.

我知道Big/Little Endian可能存在挑战,并且代码可以移植到其他微软,但请不要因为这对我来说不重要,因为这对我来说并不重要.

我做错了什么,谢谢你的帮助?

请保持简单并解释"为傻瓜".

我收到了pe513错误.

我的代码:

struct Test {
    uint8_t Byte1;
    uint8_t Byte2;
    uint8_t Byte3;
    uint8_t Byte4;
} TestStruct;

float x = 0.0;

uint8_t *TestStruct_ptr;

int main(void)
{
    /* USER CODE BEGIN 1 */
    TestStruct.Byte1 = 0x41; //float value = 23.10
    TestStruct.Byte2 = 0xB8;
    TestStruct.Byte3 = 0xCC;
    TestStruct.Byte4 = 0xCD;  

    TestStruct_ptr = (float*)&TestStruct;

    x = (float*) TestStruct_ptr;

    // some code



    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:我正在从Eeprom加载一个数组,并且必须将四个uint8字节的数组"收集"到一个浮点数,它们在保存到Eeprom之前是结构的一部分.我明天上班的时候会更新确切的错误信息.

我最终使用"联盟",因为这似乎是最好的解决方案.

我的示例代码现在看起来像这样:

union Eeprom {
  struct {
    uint8_t Byte1;
    uint8_t Byte2;
    uint8_t Byte3; …
Run Code Online (Sandbox Code Playgroud)

c pointers type-conversion stm32

1
推荐指数
3
解决办法
214
查看次数

标签 统计

c ×1

pointers ×1

stm32 ×1

type-conversion ×1