自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 STM32 IAP中将uint8_t类型的数组以双字方式写入Flash的操作

用来接收升级数据包,而单片机(或者说编译器)在给这个数组分配地址时可能会分配到0x2000000A,显然这个地址不能被8整除,那么将这个地址强制转换为uint64_t类型的指针后单片机就会报硬件错误。解决这个问题的方法也很简单,只需要在定义这个数组时强制首地址8字节对齐就行。改成这样就可以啦,这样 flash_tdata的首地址就一定能被8整除了,那么在后面的转换的时就不会出错了。传入的 *buf的地址不是8字节对齐导致的,例如我们定义一个数组。

2025-09-26 15:47:43 231

原创 在IAP时对STM32 内部Flash写入的简单代码及bug记录

本文介绍了单片机Flash存储操作的实现代码,包含writeFlash和readFlash两个函数。writeFlash函数实现了将uint8_t数组数据以8字节双字形式写入Flash的功能,支持地址擦除和批量写入操作;readFlash函数则实现了从指定地址读取数据的功能。代码中特别注意事项包括:需要将单字节数组转换为双字指针,以及必须通过全局变量中转双字数据以避免硬件错误。该函数特别适用于IAP升级场景,可直接接收升级包数据并写入Flash,使用方便。

2025-09-26 09:55:51 260

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除