查看原文
其他

灵动微MM32F103C8T6使用初体验

电子开发学习 电子开发学习 2021-01-31



今年中兴事件,让国人重新认识了一下芯片产品对一个国家的重要性,圈内很多人也开始寻求相应的自主芯片解决方案。


前几天拿到了几颗灵动微出的ARM Cortex M3内核的通用32位单片机MM32F103C8T6,正好我有之前做的STM32F103C8T6的最小系统板,打样测试板还剩几片,索性就拿来焊接了一个MM32F103C8T6最小系统板,板子焊接好如下:


这个板子上的外设资源如下



接下来体验一下开发。


先去官网下载MM32F103的KEIL器件PACK。


浏览器里搜索灵动微或者直接输入以下网址:http://www.mindmotion.com.cn/打开灵动微官网如下,



然后点击右上角的资料下载,出现下载中心如下:



因为我们用的是keil开发,所以选择下面的资料包下载即可



下载好之后,解压如下:



所有keil下的pack都是放在这儿的,我们选择对应的pack,然后双击就可以安装了。



一路next即可,在此不表。


安装完成之后,我们打开keil5,然后点击新建工程,就会看到Device列表树种多了一个MindMotion。



点击MindMotion前面的加号展开,选择MM32F103C8T即可。



点击OK,会弹出这个界面,直接取消即可。



这样工程就创建完成了。但是工程师空的,什么都没有。



接下来我们再次去灵动微官网。



下载上图中圈出的库函数和例程压缩包如下。



解压完成并进入到根文件夹内部会发现有如下三个文件夹和一个文件。



其中Device里面有两个文件夹,第一个CMSIS文件夹是ARM Cortex 内核的文件,第二个MM32F103里面是MM32F103的库文件、启动文件


MM32F103RBT_EVBoard_LibReg文件夹,按照名字来看,应该是MM32官方开发板MM32F103RBT_EVBoard的库函数和寄存器使用的例程。


MM32F103RBT_MiniBoard_libReg文件夹,按照名字来看,应该是MM32官方开发板MM32F103RBT_MiniBoard的库函数和寄存器使用的例程。


那我们构造一个属于自己的MM32 KEIL项目模板。


第一步、创建一个文件夹,命名就叫MM32F103,里面再创建如下几个文件夹

第二步、搬运文件。


1、去刚我们从官网上下载并解压的文件夹,进入到Device文件夹,复制全部文件到我们自己创建的MM32F103文件夹下面的DEVICE中。


2、去刚我们从官网上下载并解压的文件夹,进入MM32F103RBT_EVBoard_LibReg文件夹并进入到EVBoardF103RBT_Lib文件夹中,会看到很多以单片机外设命名的文件夹,其实这是各个外设的用例,随便打开一个,我这里以ADC为例,进去复制IAR_PRJ、KEIL_PRJ、SYSTEM、USER几个文件夹中的内容粘贴到我们的创建的文件夹对应的位置。


第三步、回到keil软件中,单击如下图标



会弹出如下界面



在Groups分组中添加几个分组如下:



并分别在分组中添加如下文件,注意,文件来自我们刚才创建的文件夹MM32F103中。






添加完成之后,点击OK关闭对话框即可。


然后点击Options菜单,弹出如下对话框。



在上图中红色框中的位置处填写

USE_STDPERIPH_DRIVER,F103_N_VERSION

最好复制粘贴,如果手动输入可能会出错导致编译不通过。


然后点击下图位置



在弹出的界面中按照下面路径添加



添加完成之后,点击OK关闭即可。


然后打开main.c文件,删掉多余的东西,留下以下代码



到这里,一个完整的工程就建立好了。


点击编译,结果如下



这时候。我们使用仿真器E-Link32连上MM32最小系统板,并把E-Link32使用USB线连接到电脑的USB口如下图



然后在keil中打开Options,并把仿真选项修改为CMSIS DAP Debugger:



然后点击右边的Settings,弹出如下窗口,勾选Reset and Run,这样下载完程序就可以自动运行了。



完了我们点击下载把刚编译的程序下载到最小系统板,发现没有什么变化。


没有变化就对了。因为刚才的程序,除了做了串口和时钟初始化、中断优先级分组,没有任何其他要执行的任务。


那么我们现在编写一个点灯的程序。


最小系统板上有一个用户控制LED,接在PC13上,我们先创建一个led.c和led.h,内容分别如下:


led.c中:


led.h中:


写好之后,保存到之前创建的MM32F103文件夹下的HARDWARE文件夹中,并按如下步骤添加到项目中:



然后在main函数中编写如下代码:



然后编译下载,就会看到绿色的led灯亮了:



灯已经点亮了,那么闪烁灯、呼吸灯已经不远了,出任CEO、迎娶白富美也指日可待了,你们就自己发挥吧。


然后我也简单的使用了一下这个片子的串口、定时器等其他外设,发现使用起来都很方便。


其实像刚才写的LED灯的led.c和led.h文件,其实都不需要自己写的,因为刚才我们下载的官方库函数的例程中就包含了这些常见的外设初始化,我们只需要把对应的.c文件和.h文件复制到我们的HARDWARE文件夹中,然后在项目组织中添加这个.c文件即可。


这样的开发效率还是很高的。如果你之前用过Cortex M3内核的任何一个处理器,用其他的片子的效率都应该很高。快则几分钟上手,慢的话一两天也足矣。




感谢您阅读“电子开发学习”的文章,如果您觉得图文能帮助您学习,欢迎关注我们。请点击右上角按钮,选择“查看公众号”,再点击关注即可。或者可以通过搜索公众号的方式关注: electricstudy  。您可以通过扫码下面的二维码关注我们。如果您想阅读往期文章,可点击“查看历史消息”。



历史好文推荐(点击文章标题可跳转):

如何制作炫酷的PCB板3D效果图

STM32最小系统板教程第三章第6讲|STM32 ADC实验

STM32最小系统板教程第三章第3讲|STM32 UART串口通信

开源四轴PCB文件发布

软件开发|小马哥DragonFly四轴软件视频第11讲下

硬件设计|小马哥DragonFly四轴硬件视频10讲

AD学习—STM32F103最小系统板制作

新手上手STM32是学习库开发还是寄存器开发?

如何解决单片机下载程序失败的问题(文末有彩蛋)

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存