要学嵌入式,关注@我要学嵌入式,嵌入式猛男的加油站。
原本项目上使用了STM32F103RCT6这一款单片机,奈何ST的芯片疯涨所以换了国产灵动微电子的MM32F3277G7P,随笔分享一下使用该芯片的一些注意事项。
01
资源对比
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口。
![260cbc2bc921e4a2c04b421dc9041bc6.png](https://img-blog.csdnimg.cn/img_convert/260cbc2bc921e4a2c04b421dc9041bc6.png)
02
拆换芯片
替换之前
![7131f665ea23818db20491715956a454.png](https://img-blog.csdnimg.cn/img_convert/7131f665ea23818db20491715956a454.png)
替换之后
![8b1f354de152c28f0c50fe8fab3d0d21.png](https://img-blog.csdnimg.cn/img_convert/8b1f354de152c28f0c50fe8fab3d0d21.png)
接下来就是新建工程了
03
新建工程
3.1 安装 Keil pack包
如果正在使用STM32或者GD32,然后想使用MM32芯片,第一步就是下载并安装MM32 Series Keil pack,安装完成后你才可以选择该系列的芯片。
![423069953ea579da54790789ac63d794.png](https://img-blog.csdnimg.cn/img_convert/423069953ea579da54790789ac63d794.png)
通过Keil 网站下载pack 包安装,通过 https://www.keil.com//pack/ 或 https://www.keil.com/dd2/pack/ 链接,浏览并找到 MindMotion 系列的相关 pack。
![ac8fa3742fe0d57a1408ed91f34b1377.png](https://img-blog.csdnimg.cn/img_convert/ac8fa3742fe0d57a1408ed91f34b1377.png)
点击Download下载,下载后点击安装包手动安装。
![87258e634280ed78af23b46648c77166.png](https://img-blog.csdnimg.cn/img_convert/87258e634280ed78af23b46648c77166.png)
之后在的MDK中就会出现对应的PACK包了。
3.2 下载官网例程
目前关于这一款芯片的资料还是比较少,毕竟才量产了两三个月,网上关于MM32芯片的资料都是关于做智能车的视频资料,可以上B站看看。
![77eb2cd84857aa644edef7d6c27a803d.png](https://img-blog.csdnimg.cn/img_convert/77eb2cd84857aa644edef7d6c27a803d.png)
在产品那一栏找到主流型MM32F的工具和软件,就可以下载例程了。
![d8e2fb2e6d4da2b7bb42a6fa415ca4a9.png](https://img-blog.csdnimg.cn/img_convert/d8e2fb2e6d4da2b7bb42a6fa415ca4a9.png)
下载完成后解压就可以看到下面这三个文件夹。
![c21872cfe9d347b4c17a667977f00067.png](https://img-blog.csdnimg.cn/img_convert/c21872cfe9d347b4c17a667977f00067.png)
Demo_app:这里面放了两个官方的模板例程,分别是以太网和音视频播放的例程,有需要的可以参考。
Device:这里面放了的是库文件。
MM32F327x_Samples:这里面放的是MM32各个外设的例程,不是很多,但是基本够使用。
![176a8fcd12ab58d385a990bffc407f66.png](https://img-blog.csdnimg.cn/img_convert/176a8fcd12ab58d385a990bffc407f66.png)
之后随便打开一个工程,是不是感觉工程文件夹看着眼熟,跟正点原子例程的工程文件夹很像。
![9541ee838cb90657e9bb3e581434af5b.png](https://img-blog.csdnimg.cn/img_convert/9541ee838cb90657e9bb3e581434af5b.png)
所以说你只要会STM32的标准库,使用MM32芯片就跟STM32一模一样。再看一下例程中的按键扫描函数,跟正点的不能说一模一样吧!
![fbe7c1d9b9d07443719f40a7d64d4258.png](https://img-blog.csdnimg.cn/img_convert/fbe7c1d9b9d07443719f40a7d64d4258.png)
完全的标准库写法,所以如果觉得STM32有点贵,可以考虑使用MM32来做替换。
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);
}
前几天看到也有网友说GD32也开始有假货了,目前GD32F103C8T6常态下是5元左右,市场报价为35元(国产GD)。
这款MM32官方价格还是16元/片,价格不算高。目前这款芯片小编还处于各个外设测试使用阶段,后期会不断更新芯片的使用体验,来先替各位踩个坑!
-END-
往期推荐:点击图片即可跳转阅读
要学嵌入式,关注@我要学嵌入式,嵌入式猛男的加油站。