gpt4 book ai didi

c - STM32将带符号的short写入EEPROM

转载 作者:行者123 更新时间:2023-11-30 20:09:29 25 4
gpt4 key购买 nike

我使用带有模拟 EEPROM 的 STM32F0 MCU。 EEPROM 取数据为EE_WriteVariable(uint16_t VirtAddress, uint16_t Data)并将它们返回为 EE_ReadVariable(uint16_t VirtAddress, uint16_t* Data)但我的数据是int16_t 。所以我的问题是,如何书写和阅读签名短文?

最佳答案

不幸的是,C 语言在涉及硬件相关编程(例如 EEPROM 仿真)时表现得很愚蠢。因此,您可以使用的唯一可靠的解决方案是:

uint16_t u16;
EE_ReadVariable(VirtAddress, &u16);
int16_t i16;
i16 = (int16_t)u16;

或者:

memcpy(&i16, &u16, 2);

任何其他事情都是不安全和危险的。特别是,您不能执行以下操作:

EE_ReadVariable(VirtAddress, (uint16_t*)&i16); // BAD

你也不能这样做i16 = *(int16_t*)&u16;//不好.

有关原因的更多信息,可以在这里找到:What is the strict aliasing rule?

关于c - STM32将带符号的short写入EEPROM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51766846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com