APM pin to pin替换STM32,程序需要修改的地方

2024-03-02 00:20

本文主要是介绍APM pin to pin替换STM32,程序需要修改的地方,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、关于APM

二、问题描述

三、解决办法


一、关于APM

APM32是基于ARM® Cortex®-M0+/M3/M4内核的优质国产(Geehy 极海半导体)32位通用MCU,具有低功耗、高性能、高集成度以及快速移植等特性。凭借优异的系统性能、丰富的协处理功能以及灵活的使用体验,有助于用户缩短产品设计时间、降低开发成本、实现性能最优化。目前可广泛应用于工业控制、医疗设备、汽车电子以及智慧家庭等领域。

发展时间线:

二、问题描述

APM的同系列型号是完全可以pin to pin替换STM32,软件还是使用STM32的工程。但是在用APM的单片机在pin to pin替换STM32单片机的时候,遇到了一些坑,给项目应用带来了不小的麻烦,投入了不少精力反复的测试验证才最终解决

替换芯片:STM32F103RET6 ---> APM32F103RET6

问题:参数被写成NAN值、远程升级死机、boot前4字节被置为0。这些问题都有一个共同点,就是都是对片内FLASH进行操作

三、解决办法

1、修改Flash操作等待周期,改成到4

APM的HCLK最高是96MHZ,所以FLASH等待周期也要对应的改为4,也就是3WS,LATENCY[2:0] = 0011

程序修改:

(1)、LL_FLASH_SetLatency设置为LL_FLASH_LATENCY_3

(2)、LL_FLASH_LATENCY_3如果没有找到定义,需要自己添加上

2、操作FLASH的时候都要先关全局中断、再开全局中断

FLASH操作函数(写、擦除)中,HAL_FLASH_Unlock()前加入__disable_interrupt(),HAL_FLASH_Lock()后加入__enable_interrupt()。注意,如果有boot,boot中有操作FLASH的地方也需要一并修改!

STM32的单片机也一样需要添加上,ST的我之前也遇到过参数被写成NAN值的,通过写检验、增加备份等方式反反复复也没有根治,大概率也是这个原因导致的,只是ST出现的概率要比APM的小很多

程序修改:

int stm32_flash_erase(uint32_t addr, uint32_t size)
{...__disable_interrupt();HAL_FLASH_Unlock();...HAL_FLASH_Lock();__enable_interrupt();...
}

3、外部晶体起振时间改成0xFFFFFFFF或是死等

这里是用的LL库的时钟初始化,在初始化HSE和PLL的时候都会死等时钟起来

如果是用的HAL库的时钟初始化,将CLOCKSWITCH_TIMEOUT_VALUE、HSE_TIMEOUT_VALUE 改为0xFFFFFFFF即可

这篇关于APM pin to pin替换STM32,程序需要修改的地方的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/764318

相关文章

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

MySQL修改密码的四种实现方式

《MySQL修改密码的四种实现方式》文章主要介绍了如何使用命令行工具修改MySQL密码,包括使用`setpassword`命令和`mysqladmin`命令,此外,还详细描述了忘记密码时的处理方法,包... 目录mysql修改密码四种方式一、set password命令二、使用mysqladmin三、修改u

使用Python在Excel中插入、修改、提取和删除超链接

《使用Python在Excel中插入、修改、提取和删除超链接》超链接是Excel中的常用功能,通过点击超链接可以快速跳转到外部网站、本地文件或工作表中的特定单元格,有效提升数据访问的效率和用户体验,这... 目录引言使用工具python在Excel中插入超链接Python修改Excel中的超链接Python

C#实现添加/替换/提取或删除Excel中的图片

《C#实现添加/替换/提取或删除Excel中的图片》在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观,下面我们来看看如何在C#中实现添加/替换/提取或删除E... 在Excandroidel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更

python修改字符串值的三种方法

《python修改字符串值的三种方法》本文主要介绍了python修改字符串值的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录第一种方法:第二种方法:第三种方法:在python中,字符串对象是不可变类型,所以我们没办法直接

Mysql8.0修改配置文件my.ini的坑及解决

《Mysql8.0修改配置文件my.ini的坑及解决》使用记事本直接编辑my.ini文件保存后,可能会导致MySQL无法启动,因为MySQL会以ANSI编码读取该文件,解决方法是使用Notepad++... 目录Myhttp://www.chinasem.cnsql8.0修改配置文件my.ini的坑出现的问题

Java操作xls替换文本或图片的功能实现

《Java操作xls替换文本或图片的功能实现》这篇文章主要给大家介绍了关于Java操作xls替换文本或图片功能实现的相关资料,文中通过示例代码讲解了文件上传、文件处理和Excel文件生成,需要的朋友可... 目录准备xls模板文件:template.xls准备需要替换的图片和数据功能实现包声明与导入类声明与

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听