打印
[技术问答]

华大HC32F130J8如何使用内部FLASH存储用户数据

[复制链接]
1752|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
doublesan|  楼主 | 2021-3-29 20:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,HC32F130这颗芯片用华大官网FLASH读写案例操作,能存用户数据,但是我的工程中开通了TIM中断和UART中断,导入FLASH读写程序后,程序跑到FLASH写操作时就会跑飞,请问有这方面经验的朋友指点一二,非常感谢!

使用特权

评论回复
沙发
walton1226| | 2021-3-30 08:23 | 只看该作者
写Flash耗时5ms以上,要禁止中断

使用特权

评论回复
板凳
doublesan|  楼主 | 2021-3-30 13:46 | 只看该作者
walton1226 发表于 2021-3-30 08:23
写Flash耗时5ms以上,要禁止中断

在网上找了一些资料,说是把写FLASH放在RAM中执行,能够规避与中断之间的冲突,不知道对不对,试了一下之后也是不行,搞得有点尴尬!

使用特权

评论回复
地板
Nicehui| | 2022-1-15 13:19 | 只看该作者
俺也一样,请问可以写入了吗?

使用特权

评论回复
5
Nicehui| | 2022-1-15 14:04 | 只看该作者
俺的问题找到了,是因为flash配置时钟不对, 注意以下这个函数
*****************************************************************************
** \brief FLASH 初始化函数——中断服务程序、编程时间配置及低功耗模式
**
** 该函数用于配置中断服务函数、低功耗模式、根据系统时钟配置FLASH编程时间相关寄存器.
**
** \param [in]  u8FreqCfg        FLASH编程时钟频率配置(根据HCLK的频率选择配置值):
**                               1      - 4MHz;
**                               2      - 8MHz;
**                               4      - 16MHz;
**                               6      - 24MHz;
**                               8      - 32MHz;
**                               12     - 48MHz;
**                               other   -  无效值
** \param [in] bDpstbEn          TRUE  - 当系统进入DeepSleep模式,FLASH进入低功耗模式;
**                               FALSE - 当系统进入DeepSleep模式,FLASH不进入低功耗模式;
**
** \retval Ok                    操作成功.
** \retval ErrorInvalidParameter 参数无效.
** \retval ErrorUninitialized    初始化失败。
*****************************************************************************/
en_result_t Flash_Init(uint8_t u8FreqCfg, boolean_t bDpstbEn)

使用特权

评论回复
6
ddxx| | 2022-1-17 09:36 | 只看该作者
修改scf文件,在flash尾部按sector大小分割出一块,专门用于存储数据,这样不会存在擦除代码区风险。

使用特权

评论回复
7
yangxiaor520| | 2022-1-17 20:43 | 只看该作者
当做数据存储区操作

使用特权

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

本版积分规则

18

主题

54

帖子

1

粉丝