1 前言
-
STM32芯片价格飞涨,现用 APM32F103VCT6 替代 STM32F103VCT6
-
遇到问题:用同样的代码去分别读写上述两种型号芯片的内部Flash:
-
读写STM32F103VCT6内部Flash成功
-
读写APM32F103VCT6内部Flash,会出现读写数据不正确的现象。
-
2 APM32F103xCxDxE 与 Sxx32F103xCxDxE 差异
- 点击下面下载差异文档 👇👇
- 《APM32F103xCxDxE 与 Sxx32F103xCxDxE 差异》。
3 两种解决方案
3.1 解决方案1 - 换芯片型号
- 换APM32的另一个型号的芯片 APM32E103VCT6
- APM32E103VCT6 优化了这个差异
- 此方案不用修改代码去兼容STM32和APPM32
3.2 解决方案2 - 改代码
- 改写芯片内部Flash函数:写前关闭总中断,写后再打开总中断
- 这样改写,可兼容STM32和APM32两款芯片
void STMFlash_Write(u32 WriteAddr, u16 *pBuffer, u16 NumToWrite)
{
__disable_irq(); // 写内部Flash前,关闭总中断
/*****这里进行写内部Flash操作*******/
__enable_irq(); //写内部Flash后,打开总中断
}
4. 想说的话
授人以鱼,不如授人以渔
这里只提供钓鱼方法而不是一条完整的鱼
有问题欢迎留言交流 / 指正o( *  ̄▽ ̄ * )ブ