Я пытаюсь получить число с плавающей запятой через VCP и записать его во флэш-память платы обнаружения STM32F4, используя Keil IDE. Функции, используемые для записи во флэш-память:
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.
Может быть, это глупый вопрос, но если вы могли бы дать мне ключ, я был бы очень признателен.
gain = *(int*)Address
наgain = *(float*)Address
? Вы также изменилиint gain;
наfloat gain;
? - person swineone   schedule 11.07.2014