[STM32F4] F405的HAL_FLASH_Program只支持64位数的写入

[复制链接]
1178|7
 楼主| motor666 发表于 2022-5-23 10:37 | 显示全部楼层 |阅读模式
我使用F405内部Flash写数据,发现写入的数只能是uint64_t类型,否则编译都不能通过,那 FLASH_TYPEPROGRAM_BYTE、FLASH_TYPEPROGRAM_HALFWORD、FLASH_TYPEPROGRAM_DOUBLEWORD还有什么用呢?
 楼主| motor666 发表于 2022-5-23 11:08 | 显示全部楼层
假如我们把uint64_t类型的数传入HAL_FLASH_Program但是选择了FLASH_TYPEPROGRAM_HALFWORD,看看到了HAL_FLASH_Program函数里会如何处理:
12953628af9bcdaa6d.png
FLASH_Program_HalfWord(Address, (uint16_t) Data); 只截取了低16位,高位数被舍弃了,实际验证的结果也是如此,只能写入低16位。
69743628afa4851804.png
WoodData 发表于 2022-5-24 08:59 | 显示全部楼层
直接强制转换就行了
木木guainv 发表于 2022-6-15 12:22 | 显示全部楼层
难道和安装的系统有关系?
wowu 发表于 2022-6-15 12:33 | 显示全部楼层
可以通过配置更改位数吗
磨砂 发表于 2022-6-15 12:41 | 显示全部楼层
需要指定地址吗
xiaoqizi 发表于 2022-6-15 12:52 | 显示全部楼层
只能通过强制转换吗
tpgf 发表于 2022-6-15 12:58 | 显示全部楼层
其他系列的支持多少位啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

176

主题

426

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部