女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

國產優秀替代_APM32F407替代STM32F407記錄

21克888 ? 來源:廠商供稿 ? 作者:WuKaiLi ? 2022-05-10 11:22 ? 次閱讀

前言

最近一段時間在玩極海的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.1\Examples\Template\Template\Source\”和“APM32F4xx_SDK_V1.1\Examples\Template\Template\Include\”下的“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都有著非常優秀的替代能力。在原有硬件無需改動的情況下,簡單的進行驅動更換后也能很好運行起來。國產優秀替代者極海也!各位小伙伴可以和我一起討論替代過程中發生的趣事~

整個內容較多,個人能力有限,些許地方可能存在較多問題,歡迎大家指出。

?聲明

?1.本代碼(文檔),僅供學習參考。

?2.代碼(文檔)參考了網上開源的代碼。如涉及貴方版權,請聯系本人刪除。

版權聲明:本文為21ic電子網論壇用戶【WuKaiLi】的原創文章,遵循21ic論壇BBS版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://bbs.21ic.com/forum.php?mod=viewthread&tid=3220654&page=1&extra=

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17824

    瀏覽量

    360157
  • STM
    STM
    +關注

    關注

    1

    文章

    557

    瀏覽量

    42990
  • APM
    APM
    +關注

    關注

    1

    文章

    72

    瀏覽量

    13301
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    APM32F407工具鏈使用教程

    APM32F407工具鏈使用教程
    的頭像 發表于 10-31 17:14 ?1518次閱讀
    <b class='flag-5'>APM32F407</b>工具鏈使用教程

    STM32F407模板

    STM32F407模板,感興趣可以看看。
    發表于 07-25 18:52 ?150次下載

    STM32F407 UCOS III實驗

    STM32F407 UCOS III實驗,介紹基于STM32F407的UCOSIII實例,參考下
    發表于 09-22 14:08 ?82次下載

    STM32F407 DCMI攝像頭源碼

    STM32F407 DCMI攝像頭源碼(電源技術存在的問題總結)-【資源描述】:STM32F407 DCMI攝像頭源碼【編程語言】:C語言
    發表于 09-16 16:15 ?133次下載
    <b class='flag-5'>STM32F407</b> DCMI攝像頭源碼

    STM32F407的串口UART 基礎配置STM32CubeMX

    STM32F407的串口UART 基礎配置STM32CubeMX
    發表于 11-29 16:06 ?56次下載
    <b class='flag-5'>STM32F407</b>的串口UART 基礎配置<b class='flag-5'>STM32</b>CubeMX

    [STM32]STM32F407系列教程之四,pwm產生原理

    [STM32]STM32F407系列教程之四,pwm產生原理
    發表于 11-29 17:51 ?54次下載
    [<b class='flag-5'>STM32</b>]<b class='flag-5'>STM32F407</b>系列教程之四,pwm產生原理

    STM32F407芯片介紹

    1. 文檔準備做嵌入式開發的第一步就是了解主芯片,了解STM32F407主要要關注幾個文檔:1. stm32F407芯片手冊2. stm32F407參考手冊3. Arm Cortex-M4數據手冊
    發表于 12-04 13:21 ?109次下載
    <b class='flag-5'>STM32F407</b>芯片介紹

    STM32F407開發板用戶手冊】第1章?? 初學STM32F407的準備工作

    STM32F407開發板用戶手冊】第1章?? 初學STM32F407的準備工作
    發表于 12-04 13:36 ?78次下載
    【<b class='flag-5'>STM32F407</b>開發板用戶手冊】第1章?? 初學<b class='flag-5'>STM32F407</b>的準備工作

    STM32F407開發板用戶手冊】第19章 STM32F407的GPIO應用之按鍵FIFO

    STM32F407開發板用戶手冊】第19章 STM32F407的GPIO應用之按鍵FIFO
    發表于 12-05 15:21 ?39次下載
    【<b class='flag-5'>STM32F407</b>開發板用戶手冊】第19章 <b class='flag-5'>STM32F407</b>的GPIO應用之按鍵FIFO

    STM32F407原理圖下載

    STM32F407原理圖下載
    發表于 01-17 13:44 ?444次下載

    使用APM32F407替代STM32F407制作的demo

    b.在原工程下添加APM32F407的中斷控制函數文件。將“APM32F
    的頭像 發表于 05-10 14:37 ?4915次閱讀

    stm32f407原理圖

    stm32f407原理圖
    發表于 07-14 16:07 ?236次下載

    STM32F407最小系統

    STM32F407最小系統免費下載。
    發表于 07-31 11:01 ?197次下載

    APM32F407 EVAL 原理圖

    APM32F407 EVAL 原理圖
    發表于 11-09 21:04 ?13次下載
    <b class='flag-5'>APM32F407</b> EVAL 原理圖

    基于極海半導體APM32F407系列MCU的伺服控制器應用方案

    基于極海半導體APM32F407系列MCU的伺服控制器應用方案
    的頭像 發表于 09-19 16:48 ?1515次閱讀
    基于極海半導體<b class='flag-5'>APM32F407</b>系列MCU的伺服控制器應用方案