国产优秀替代_APM32F407替代STM32F407记录

发布者:legend9最新更新时间:2023-08-10 来源: elecfans关键字:国产  替代  STM32F407 手机看文章 扫描二维码
随时随地手机看文章

前言

最近一段时间在玩极海的APM32F407系列的MCU,在研究一段时间后发现其资源和意法半导体的STM32F407不相上下。通过对比两者的数据手册和参考手册,我发现APM32F407替代STM32F407绰绰有余。我拿出了我吃灰已久的一块开发板“启明欣欣 IMT407 V5.1”(淘宝搜索“启明欣欣”)。预计将开发板上的STM32F407芯片替换成APM32F407的芯片,看看会发生什么样的事情。

本文记录一下我使用APM32F407替代STM32F407制作的一个小demo(使用SPI外设读取W25Q128)。该demo使用原开发板电路,看看将主控换成APM32F407后看看能不能做到pin对pin的完美替代。

本文使用环境:

硬件

启明欣欣 IMT407 V5.1(APM32F407ZGT6)

J-link v9.7

IMT 2.8 TFTLCD

USB转TTL

软件:

MDK-ARM Plus Version: 5.36.0.0

fireTools

固件或例程库:

1.APM32F4xx_SDK_V1.1

2.启明欣欣STM32F407(高配版V5.1)学习资料(2 各资源学习例程标准库版本15 SPI_W25Qxx)

参考文档:

1.APM32F4xxx用户手册 V1.1

2.APM32F405xG 407xExG数据手册 V1.1

3.启明欣欣407开发板(高配版)V5.1原理图

4.STM32F4xx中文参考手册

5.STM32F407ZGT6数据手册.pdf

先上一下替换芯片后的板子照片(原谅我的渣渣焊工):


1 环境配置

1.1 APM32F407开发环境

在极海官网获取最新的SDK"APM32F4xx_SDK_V1.1",在其目录下有Pack“Geehy.APM32F4xx_DFP.1.0.1.pack”,安装完毕后才能使用keil开发APM32F407芯片。


1.2 添加APM32F407驱动库文件

a.在原工程下添加APM32F407的驱动库(本文节取原开发板例程中的SPI_W25Qxx例程),复制APM32F4xx_SDK_V1.1下的Library文件夹至工程目录,改名为APM32F4xx_Library。


b.在原工程下添加APM32F407的中断控制函数文件。将“APM32F4xx_SDK_V1.1ExamplesTemplateTemplateSource”和“APM32F4xx_SDK_V1.1ExamplesTemplateTemplateInclude”下的“apm32f4xx_int.c”和“apm32f4xx_int.h”复制至工程目录“Main”下。


1.3 添加APM32F407工程及目录

a.在“Project Items”目录下新增“APM32F407”工程,以便换不同的工程进行编辑编译下载。

b.在“Groups”目录下新增“APM32F4xx_StdPeriphDriver”与“APM32F4xx_Startup_config”分组。

c.分别在“APM32F4xx_StdPeriphDriver”与“APM32F4xx_Startup_config”分组下添加本次例程使用到的驱动文件。

d.在“Main”分组下添加我们上一节增加的内容“apm32f4xx_int.c”。






1.4 更改APM32F407工程芯片

将工程“APM32F407”的芯片选型设置为“APM32F407ZG”。


1.5 设置编译选择

a.设置不同工程目录下的编译选择,以控制不同的工程下编译的文件。


“APM32F407”工程去除STM32的编译文件包含。


b.设置“APM32F407”工程的声明为“APM32F40X”。

c.增加“APM32F407”工程中APM32F407驱动库文件头文件目录。


2 底层驱动替换

更改代码,将STM32的驱动函数替换为APM32的驱动函数,这部分比较繁琐,需要慢慢替换。可根据工程所需外设的驱动进行对照替换。如我们现在的工程主要涉及到的外设有:misc/gpio/spi/fsmc/usart/rcm。可以通过查看两者的参考手册,查看那些寄存器功能基本一致的对应的库函数的功能也基本一致。

2.1 外设与库函数对照

我这里也整理了本次替代过程中常用外设的寄存器与库函数的参照,供大家参考。这里截取部分内容,更多内容请查阅附件(*附件下载链接:https://bbs.21ic.com/forum.php?mod=viewthread&tid=3220654&page=1&extra=)。





2.2 驱动替换方式

由于前文我们已经将“APM32F407”工程的声明设置为“APM32F40X”,这里我们仅需将涉及外部功能模块的源码文件内的驱动进行替换。通过宏定义的方式以支持不同平台的文件。
如包含头文件时:

#ifdef STM32F40_41xxx

/** 原 stm32 接口或外设驱动 */

#include "stm32f4xx.h"

#endif

#ifdef APM32F40X

/** 替换为 apm32 接口或外设驱动 */

#include "apm32f4xx.h"

#include "apm32f4xx_misc.h"

#include "apm32f4xx_spi.h"

#include "apm32f4xx_rcm.h"

#include "apm32f4xx_smc.h"

#include "apm32f4xx_gpio.h"

#include "apm32f4xx_usart.h"

#endif

如替换GPIO外设驱动时:

#ifdef STM32F40_41xxx

/** 原 stm32 接口或外设驱动 */

GPIO_InitTypeDef GPIO_InitStructure;

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);//使能GPIOF时钟

GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6 |GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9;//KEY0 KEY1 KEY2 KEY3对应引脚

GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN;//普通输入模式

GPIO_InitStructure.GPIO_Speed =GPIO_Speed_100MHz;//100M

GPIO_InitStructure.GPIO_PuPd =GPIO_PuPd_UP;//上拉

GPIO_Init(GPIOF,&GPIO_InitStructure);

//初始化GPIOF6,7,8,9

#endif

#ifdef APM32F40X

/** 替换为 apm32 接口或外设驱动 */

GPIO_Config_T GPIO_InitStructure;

RCM_EnableAHB1PeriphClock(RCM_AHB1_PERIPH_GPIOF);

GPIO_InitStructure.pin =GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;

GPIO_InitStructure.mode =GPIO_MODE_IN;

GPIO_InitStructure.speed =GPIO_SPEED_100MHz;

GPIO_InitStructure.otype =GPIO_OTYPE_PP;

GPIO_InitStructure.pupd =GPIO_PUPD_UP;

GPIO_Config(GPIOF,&GPIO_InitStructure);

#endif

替换过程较为繁琐,这里不再一一赘述。具体代码实现大家可参考附件源码。

3 程序下载与仿真

由于我们的已做双工程处理,在修改底层驱动至APM32F407时并不影响原工程内容,我们可以通过选择不同的工程对目标芯片进行下载。我这里选择"APM32F407"工程通过J-LINK下载我手上的板子。


程序下载过程中会提示我们选择芯片平台,这里选择“M4”即可。


4 .最后效果

a.程序开始运行后,屏幕会显示请用户发送数据到串口1“Please send data to usart1”,此时用户就要通过串口助手向开发板发送数据,发送格式为S…….E。“….…”为用户所需要发送的数据,发送后数据存在 receive_str[ ]数值中并在显示屏显示。


b.将接收到的数据写入W25Q128,KEY0按下,将串口1接收到的数据(receive_str[ ]中数据)写入25Q128。

c.将写入到W25Q128的数据读出并显示,KEY1按下,将写入到W25Q128中的数据读出并显示。


5 总结

以上便是本次使用APM32F407替代STM32F407的简要过程。通过本次替代经历,发现极海的APM32F407芯片的硬件与软件环境对STM32F407都有着非常优秀的替代能力。在原有硬件无需改动的情况下,简单的进行驱动更换后也能很好运行起来。国产优秀替代者极海也!各位小伙伴可以和我一起讨论替代过程中发生的趣事~


关键字:国产  替代  STM32F407 引用地址:国产优秀替代_APM32F407替代STM32F407记录

上一篇:基于STM32H750的RTC自动唤醒
下一篇:STM32F03定时器基础知识基本简介

推荐阅读最新更新时间:2024-11-12 09:36

分立器件 一款可替代集成MOSFET驱动器的卓越解决方案
  MOSFET  栅极驱动电路中使用的发射器跟踪器,并且了解到利用小型 SOT-23 晶体管便可以实现 2A 范围的驱动电流。在本设计小贴士中,我们来了解一下自驱动同整流器并探讨何时需要分立驱动器来保护 同步整流器 栅极免受过高电压带来的损坏。理想情况下,您可以利用电源变压器直接驱动同步整流器,但是由于宽泛的输入电压变量,变压器电压会变得很高以至于可能会损坏同步整流器。 一款可替代集成MOSFET驱动器的卓越解决方案 图 1 显示的是用于控制同步反向拓扑中 Q2 传导的 分立器件 。该电路可以让您控制开启栅极电流并保护整流器栅极免受高反向电压的损坏。该电路可以用变压器输出端的负电压进行驱动。12V 输入与
[电源管理]
分立器件 一款可<font color='red'>替代</font>集成MOSFET驱动器的卓越解决方案
国产芯片 要拿什么来拯救你
  这段时间科技圈中最重大的事件,无疑是中兴被美国下达禁令的新闻。消息一出,更是震惊整个中国科技届,也给众多互联网企业打了一个大大的耳光。没有美国提供的 芯片 、系统,就算是世界第四大通讯商的中兴,也瞬间处在风雨飘摇之中。那么我们真的毫无反抗之力了吗?下面就随嵌入式小编一起来了解一下相关内容吧。    从美国开始 到世界繁荣   世界半导体历程要从1947年开始,美国贝尔实验室发明了半导体点触式晶体管,这个事件的发生也预示着人类正式进入硅文明时代。   发展至今,美国已经牢牢把控世界上绝大部分 芯片 市场份额,Intel、AMS、高通等知名 芯片 制造商基本均为美国企业。中国身为世界第一制造国,也是世界第一贸易大国,每年却从
[嵌入式]
茅台打造智能工厂,1个码垛机器人可替代12名工人
贵州茅台酒厂量身订做的数台工业 机器人 不久即可上岗,茅台酒厂的机器人来自荆门高新区埃斯顿机器人(湖北)公司。   埃斯顿公司生产车间,荆门高新区埃斯顿机器人(湖北)公司产品经理汪世林正调试即将出厂的码垛机器人。他遥控按钮,运送货品的传送带运转起来,机器人准确握住货品,运至右侧台面,一袋一袋整齐码垛。“这款机器人,一条生产线可替代12名工人。”据介绍, 智能机器人 与 自动化 专机的区别在于它非常灵活,而专机必须通过变动某些固定的部位来适应不同的任务,使用中受限。   贵州茅台酒厂白酒包装生产线
[嵌入式]
日韩半导体危机或令国内厂商存替代机遇
  已处寒冬的国际半导体产业,遭受国际政治风云变幻的频繁打击。随着日本对韩国收紧半导体材料的出口限制生效,产业链已经出现首轮反馈,最新信息显示,韩国存储大厂酝酿减产调价计划,从韩国显示巨头到苹果都传出在积极寻找多元化供货商。   证券时报·e公司记者采访产业链相关上市公司发现,已经有韩国厂商前往中国内地洽谈材料供货事宜,也有公司表示关注后续韩国市场机遇。同时,大部分产业链公司回应,目前并未受到日韩管制事件的影响,长期看好在半导体材料以及OLED领域的国产厂商供应链替代机遇。   韩国厂商放话来华采购   7月4日,日本加强对韩国出口管理生效。此次,日本政府将把韩国从白名单移除,并对氟化聚酰亚胺、光刻胶、氟化氢这三种关键
[半导体设计/制造]
华为芯片遭断供,为何国产车企却慌了?
华为 芯片将面临断供,却让自主品牌汽车企业嗅到了危机。 民族企业巨头 华为 却因为一颗小小的芯片被困,这是所有国人不愿看到的。如果没有了芯片,自主汽车产业又将如何? 中国已经成为全球最大的汽车市场,并成为了全球电动智能化转型趋势下走的最迅速的市场。但同样的,一颗小小的芯片命门却被拽在别人手中。 过去以来,汽车芯片市场一直被外资芯片巨头垄断,中国已经连续多年进口额超过2万亿元。 《高工新汽车评论》了解到,有部分自主品牌车企明显诞生出芯片国产化替代的需求。例如,首款搭载国产AI芯片的长安UNI-T车型已经量产上市。 这也让国产芯片企业嗅到了商机。 “这对于国内芯片厂商来说,将是一个崛起的好机会。”包括地平线、芯
[汽车电子]
华为芯片遭断供,为何<font color='red'>国产</font>车企却慌了?
国产软件复苏不能只盼政策利好
    机不可失,事在人为。与互联网行业中国厂商风生水起不同,传统国产软件厂商近些年一直扮演陪太子读书的角色,IBM(184.37, -1.32, -0.71%)、甲骨文(41.81, -0.16, -0.38%)、EMC(26.41, -0.20, -0.75%)、戴尔、微软(40.29, -0.50, -1.23%)等国际软件巨头一直在企业和机构的底层IT架构中扮演主角,但棱镜门的曝光以及中国政府对信息安全的愈发重视,“去IOE”劲风得以持续猛吹,国产软件迎来崛起契机。   政策利好   5月16日,中央政府采购网发布《中央国家机关政府采购中心重要通知》要求,所有计算机类产品不允许安装Windows 8操作系统。   5月27日
[手机便携]
三星缩减苹果OLED屏供应:国产机春天来了?
此前苹果十周年纪念机型iPhone X首次使用了AMOLED屏幕,Samsung Display作为iPhone X手机的独家供应商,增加生产线只为能够满足苹果的需求。不过由于iPhone X高昂的售价,并没有带来理想的销量,这也使得三星生产的AMOELD面板出现了产能过剩的情况。 十周年纪念机型iPhone X首次使用了OLED屏幕   目前三星已经完全垄断了小尺寸OLED市场,但是由于iPhone X低迷的销量也让其陷入了亏损的境地。虽然今年苹果将会推出两款搭载AMOLED屏幕的iPhone机型,依旧由三星独家供应,不过苹果为了不重蹈覆辙,大幅减少了AMOLED屏幕的采购需求。 三星生产的AMOELD屏幕未来可能会出现供过
[手机便携]
摆脱山寨代名词 国产手环设计的新颖点
    智能穿戴产品几年前便在国外火了起来,无论是大家熟知的Nike+ FuelBand,还是更为专业的Fitbit和Jawbone,早就让老外享受到了智能穿戴的益处,但2013年前国内的可穿戴市场可谓是一片空白。可不得不说的是,2014年是智能穿戴产品在国内如日中天的一年,各大外国厂商相继打开中国市场的同时,国内的各大硬件厂商也追赶着这一潮流。可穿戴设备之所以能够井喷一样的发展,更多原因是因为我们的生活质量显著提升,关注自身健康的人也多了起来,这为可穿戴市场提供了蓬勃发展的沃土。 纵观智能穿戴产品,虽然品牌不同外观不同,但功能却大相径庭,检测运动状况和睡眠情况成为了每款智能穿戴产品必选项,而且为数不少的可穿戴产品内置了震动提醒
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved