[STM32F4]

F405的HAL_FLASH_Program只支持64位数的写入

[复制链接]
562|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 | 显示全部楼层
其他系列的支持多少位啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

419

帖子

1

粉丝