社区导航

 
查看: 292|回复: 0

[分享] 【新驱动力科技MM32F031C6开发板评测】搭建开发环境&搭建第一个工程&串口DMA定长接收

[复制链接]

56

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-5 00:12:08 | 显示全部楼层 |阅读模式
    收到开发板很久了,可是忙于工作没时间发帖子,今天开始搭建了个初步的工程,用于以后的开发。
    MM32是上海灵动微电子公司出品的ARM单片机,类似STM32单片机,基于ARM Cortex M内核,我这次拿到的是MM32F031,也就是一款M0内核的单片机,要进行开发,首先要下载基于MDK5.25的MM32F031的pack包和SDK即固件库。MM32F031的pack在MDK的官网可以找到:
1.jpg
    下载好了之后在MDK内部的pack installer里面安装pack包,安装好之后就可以找到MM32F030C6的MCU型号了:
2.jpg 3.jpg
    然后是连接开发板并进行烧录的准备,我这里直接使用JLINKOB的4根线连接MM32板子,以实现ICP下载,并通过一条MicroUSB线连接开发板的板载虚拟串口的USB接口,这个USB接口是由CH340芯片转出来的,直接连到了单片机的PA9和PA10即串口1,将数据线插上电脑之后就可以进行串口通信和ISP下载(不过我并不需要ISP下载):
IMG_20181104_231332R.jpg
然后下载官方的SDK代码工程,在新驱动力官网是没有的,只有在上海灵动微电子MM32的官网才能找到:
http://www.mindmotion.com.cn/download1.aspx
4.jpg
打开SDK,设置连接模式为SWD模式,如果JLINKOB连线没有问题的话,是可以找到MCU的设备的,然后再把下载完复位选项勾上:
5.jpg 6.jpg
官方的SDK中有库函数和寄存器两种版本,为了开发方便当然选库函数:
7.jpg
由于项目中需要用到串口接收,因此我选择的工程模版是官方给出的串口DMA中断定长接收,这里需要特别说明一点,由于MM32目前全系列都没有串口空闲中断外设,因此没有办法在串口接收到一帧数据之后产生中断,所以只能用DMA中断实现定长接收,或者是在引入了结束标志位的前提下进行不定长接收,但是这个方法不完善,存在BUG,因此现在最好的方法是引入结束标志位+DMA定长接收,这样子就可以确保接收到的数据绝对是符合通信规范的,不符合通信规范的数据都丢掉,减少串口通信中错误发生的可能性
8.jpg
然后连上P4跳帽,使得板载的LED-D2可以锁定PA8引脚,因为D2另一端是连接VCC,所以PA8要置低电平才可以点亮LED。使用DMA进行串口定长接收,用0x0d 0x0a做结束符:
10.jpg 9.jpg
点灯:
1.gif
上传我自己归纳整理的例程: MM32F031C6T6.zip (133.44 KB, 下载次数: 0)


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-11-18 16:00 , Processed in 0.057418 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表