我正在尝试通过 VCP 接收浮点数,并使用 Keil IDE 将其写入 STM32F4 发现板的闪存中。用于写入 Flash 存储器的函数:
FLASH_Status FLASH_ProgramDoubleWord(uint32_t Address, uint64_t Data);
FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data);
FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data);
FLASH_Status FLASH_ProgramByte(uint32_t Address, uint8_t Data);
接受一个无符号整数值作为数据输入,但我已经设法使用以下代码在闪存中写入一个有符号整数:
int dataflash1 = -1000;
int gain;
uint32_t Address= 0x08008000;
.......
FLASH_ProgramWord(Address,dataflash1);
.......
gain=*(int*)Address;
不过,我仍然没有设法编写浮点数据。如果我将“int”更改为“float”(它们都应该是 4 字节数据,在 keil 编译器指南中有说明),我会得到类似 1.7345673 e-42 的数字。
也许这是一个愚蠢的问题,但如果你能给我一个线索,我真的很感激。