天天看點

MM32F3277替換STM32

摘要:原本項目上使用了STM32F103RCT6這一款單片機,奈何ST的晶片瘋漲是以換了國産靈動微電子的MM32F3277G7P,随筆分享一下使用該晶片的一些注意事項。

一、資源對比

STM32F103RCT6 擁有的資源包括:48KB SRAM、256KB FLASH、2 個基本定時器、4 個通用定時器、2 個進階定時器、2個 DMA 控制器(共 12 個通道)、3 個 SPI、2 個 IIC、5 個序列槽、1 個 USB、1 個 CAN、3 個 12位 ADC、1 個 12 位 DAC、1 個 SDIO 接口及 51 個通用 IO 口。

MM32F3277G7P屬于靈動微電子全新主流型 MM32F3270 系列,這款晶片是去年12月份才開始供貨,該系列 MCU 搭載了 Arm® Cortex®-M3 核心,最高主頻 120MHz。

MM32F3277G7P包括: 512KB Flash,128KB RAM、3 個 12 位的 ADC、2 個 12 位的DAC、2 個比較器、2 個 16 位通用定時器、2 個 32 位通用定時器、2 個 16 位基本定時器和 2 個 16 位進階定時器、2 個 I2C口、3 個 SPI、3 個 I2S 和 8 個 UART 、1 個 USB OTG、1 個 CAN 、1 個 SDIO接口及45個通用 IO 口。

MM32F3277替換STM32

二、拆換晶片

替換之前

MM32F3277替換STM32

替換之後

接下來就是建立工程了

三、建立工程

1、安裝 Keil pack 包

如果正在使用STM32或者GD32,然後想使用MM32晶片,第一步就是下載下傳并安裝MM32 Series Keil pack,安裝完成後你才可以選擇該系列的晶片。

MM32F3277替換STM32

通過Keil 網站下載下傳pack 包安裝,通過 https://www.keil.com//pack/ 或 https://www.keil.com/dd2/pack/ 連結,浏覽并找到 MindMotion 系列的相關 pack。

MM32F3277替換STM32

點選Download下載下傳,下載下傳後點選安裝包手動安裝。

MM32F3277替換STM32

之後在的MDK中就會出現對應的PACK包了。

2、下載下傳官網例程

目前關于這一款晶片的資料還是比較少,畢竟才量産了兩三個月,網上關于MM32晶片的資料都是關于做智能車的視訊資料,可以上B站看看。

MM32F3277替換STM32

在産品那一欄找到主流型MM32F的工具和軟體,就可以下載下傳例程了。

MM32F3277替換STM32

下載下傳完成後解壓就可以看到下面這三個檔案夾。

MM32F3277替換STM32
  • Demo_app:這裡面放了兩個官方的模闆例程,分别是以太網和音視訊播放的例程,有需要的可以參考。
  • Device:這裡面放了的是庫檔案。
void LED_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStruct;
    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOA, ENABLE);
    RCC_AHBPeriphClockCmd(RCC_AHBENR_GPIOB, ENABLE);
    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource15, GPIO_AF_15);                      //Disable JTDI   AF to  AF15
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource3, GPIO_AF_15);                       //Disable JTDO/TRACESWO   AF to  AF15
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource4, GPIO_AF_15);                       //Disable NJRST   AF to  AF15
    GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_15);                       //Disable AF Funtion   AF to  AF15
    GPIO_InitStruct.GPIO_Pin  =  GPIO_Pin_15;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOA, &GPIO_InitStruct);

    GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
    GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOB, &GPIO_InitStruct);
}
           

繼續閱讀