你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

有关STM32G030K6T6芯片Flash写入问题?

[复制链接]
X2002 提问时间:2024-2-22 13:59 / 已解决

使用platformio + libopencm3 编写的程序,相关代码如下;

企业微信截图_17085809888999.png

企业微信截图_17085810025862.png

执行页擦除之后 数据全是0x00,对地址写入就会跳转到

void blocking_handler(void) { while (1); }

这个方法中。

写入地址 0x0801F800 页数 63

收藏 评论3 发布时间:2024-2-22 13:59

举报

3个回答
xmshao 最优答案 回答时间:2024-2-22 17:00:05
从你给出的代码来看,难以发现明显问题。你那个双字编程函数可以参考库函数的写法。


static void FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
{
  SET_BIT(FLASH->CR, FLASH_CR_PG);
//第一个字
  *(uint32_t *)Address = (uint32_t)Data;



  __ISB();



  //写第2个字

  *(uint32_t *)(Address + 4U) = (uint32_t)(Data >> 32U);
}


另外,你查下代码,看看什么情况下会跳进blocking_handler.
butterflyspring 回答时间:2024-2-22 17:57:52
不清楚 flash_program_double_word 这个函数内容。

检查一下是不是符合手册描述的过程。
X2002 回答时间:2024-2-24 10:51:07

xmshao 发表于 2024-2-22 17:00
从你给出的代码来看,难以发现明显问题。你那个双字编程函数可以参考库函数的写法。</p>
<p>

谢谢已经解决了,原因是因为芯片没有这么大是小容量的,而我一直用的是中容量的。擦除页数跟地址对不上

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版