stm32H70之使用片内的2Mflash

STM32h750之使用片内的2Mflash

虽然stm32h750手册显示片内flash只有128k,但网友测试发现实际片内flash能达到2M,所以自测l了一下,果然不只是128k。

所以就写个博客

方法1:cubemx选择引脚和封装对应的stm32h743芯片

比如,我手里的芯片是stm32h750vbt6芯片,在cubemx芯片选择栏输入stm32h743可以看到所有的stm32h743芯片
在这里插入图片描述

我选择stm32h743VITx,它们俩资源上基本相同。

优缺点

有点:方法简单粗暴

缺点:如果两个芯片电气特性上有细微的差别,出问题的话换回stm32h750需要重新建工程。

方法2:keilmdk添加下载算法

第一步:

打开stm32h7的器件包到flash文件夹:比如

D:\Program Files\Keil_v5\packs\Keil\STM32H7xx_DFP\2.7.0\CMSIS\Flash

一般.情况下这部分是一样的…\Keil_v5\packs\Keil\STM32H7xx_DFP\2.7.0\CMSIS\Flash

复制下面显示的两个文件到 …\Keil_v5\ARM\Flash 下

在这里插入图片描述

第二步:打开keil mdk,按下图操作

改iROM1 SIZE=0x200000

在这里插入图片描述

在这里插入图片描述

按下图删掉现在的下载算法,点击添加
在这里插入图片描述

拉倒最后选择STM32Hx—2048,点击确定

在这里插入图片描述

然后一路点击确定即可,然后下载测试

在这里插入图片描述

成功

优缺点

优点:简单,如果有问题的话还可以换回到128k版本

缺点:可能flash操作函数还是操作区间在128k(未测试过);

优点:简单,如果有问题的话还可以换回到128k版本

缺点:可能flash操作函数还是操作区间在128k(未测试过);

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
STM32F1是一款强大而灵活的微控制器,它的片内Flash存储器可以用来存储有关代码和数据,但是在实际应用中,我们也需要对这个存储器进行读写操作。那么针对这个问题,可以利用STM32F1的HAL库,提供的一些读写Flash的API函数。 首先,要实现对Flash的读写操作,必须要先解锁Flash,才能够进行写入的操作。这个API函数可以通过调用“FLASH_Unlock()”解锁Flash,相关的代码如下: `HAL_FLASH_Unlock();` 接下来,就可以使用HAL库提供的“Flash写入”函数来进行Flash存储器的数据写入操作了。这个写入函数的原型如下: `HAL_FLASH_Program (TypeErase, Address, pData)` 这个函数中,参数“TypeErase”是一个整型参数,表示要执行的擦除操作类型,参数“Address”是一个整型变量,表示写入Flash的起始地址,而参数“pData”是一个指向被写入数据缓冲区的指针。调用此函数后,可以对片内Flash中的数据进行新增、修改、删除等操作,相关的代码如下: `#define FLASH_PAGE_SIZE ((uint32_t)0x400) //定义Flash的一页大小` `uint32_t StartAddress = 0x08000000; //定义变量,指定Flash的起始地址` `uint32_t PageError = 0; //定义变量,表示当前是否有页错误` `uint32_t data[10] = {0x1111,0x2222,0x3333,0x4444,0x5555,0x6666,0x7777,0x8888,0x9999,0xAAAA}; //定义要写入的数据` `HAL_FLASH_Unlock(); //解锁Flash` `for (uint32_t i=0; i<10; i++) //循环执行写入操作` `{` `uint32_t WriteAddress = StartAddress + i*sizeof(data[i]); //计算出写入的地址` `HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, WriteAddress, data[i]); //写入Flash数据` `HAL_Delay(10); //延时等待,确保写操作完成` `}` `HAL_FLASH_Lock(); //执行数据写入完成操作` 最后,在进行完所有的Flash读写操作后,一定要调用“FLASH_Lock()”函数,来重新锁定Flash存储器。这样就实现了在STM32F1上进行Flash的读写操作,对于一些需要在实际应用环境中进行数据存储的系统来说,这项技术可以起到非常重要的作用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值