MM32F103
由电子创新网与灵动微电子联合举办的“灵动MM32F103开发板评测活动"第一期试用名单已经新鲜出炉啦,赶快来看看您是否榜上有名吧?具体名单信息如下方表格!
(开发套件已由小编用顺丰寄出,注意查收哦~)
Ps:活动依然在火爆进行中,没报名的赶快抓紧时间,跟着小编一起行动起来吧,点击《灵动MM32F103开发板评测活动开始啦,在线申请可赢取精美礼品!》,精彩不容错过喔······
灵动微电子MM32F103开发套件介绍
1、MM32F103开发套件
1) MM32F103RB开发板
2) MM32 Debugger调试器
3) MM32开发板扩展配件--2.8”TFT屏
2、MM32F103RB开发板简介
• 采用Cortex®-M3内核的MM32F103RBT6 MCU主控
• 最高工作频率 96MHz,128KByte Flash,20KByte SRAM
• 1个标准的JTAG/SWD调试下载口
• 1个I2C接口的EEPROM芯片,容量1024Byte
• 1个SPI FLASH 芯片,容量8Mbyte
• 1个标准的2.8”LCD接口,支持触摸屏
• 1个OLED模块接口(与LCD接口部分共用)
• 1个USB接口,可用于程序下载和代码调试
• 1个USB SLAVE接口,用于USB通信
• 1个TF-SD卡接口,1个PS/2接口,可外接鼠标、键盘
• 1个无线通信模块接口(分别支持433M、2.4G 模块)
• 1个RTC后备电池座
• 3个功能按钮,兼具唤醒功能
• 1个红外接收头,可支持红外遥控器
• 可扩展多种外设模块
• 工作电源:DC-5V(MicroUSB 或单独外接5V DC电源)
3、MM32F103RB开发板技术资料下载
请点击灵动官网进行下载
一言不合就放假了!!!
今天记录一下我使用MM32开发板驱动HC05蓝牙模块与Android手机通信的过程。说实话,整个过程满是狗血。
一、HC05简介
HC05是一块主从一体的串口蓝牙模块。也就是说,该模块可以配置成主模式、从模式(当然也可以配置成主从回环,不过不介绍,因为我没用过),与单片机通过串口通信。所以说,如果该蓝牙模块配置好了主从模式和波特率,就基本不需要人为操作了,我们只管进行串口通信就行了。
二、HC05配置
在配置之前,先看看其引脚:
从上到下依次为STATE、RXD、TXD、GND、VCC、EN。实际上,我们在配置蓝牙时,就是使用电脑通过串口将配置数据发送给蓝牙以达到配置蓝牙寄存器的目的。因此,我们需要一台电脑、一款串口调试助手软件(随便哪款都行)、一个USB转串口工具、和四根杜邦线(因为我们只用到TXD、RXD、VCC、GND)。
VCC--VCC
GND--GND
TXD--RXD
RXD--TXD
将USB转串口与蓝牙模块按照上图连接。连接好后,按住蓝牙模块正面右下角的按钮不放,将USB转串口插进电脑USB端口。等到蓝牙模块的指示灯每2秒亮一次,一次亮2秒,即进入了AT(配置)模式。打开串口调试助手软件,选择对应的端口,注意此时的波特率固定为38400。
接下来我们即可配置蓝牙了,介绍3个主要的蓝牙AT指令。
上图指令用来设置蓝牙的名称,方便连接时寻找你要配对的蓝牙。
ROEL指令用来设置蓝牙的主从模式,因为我们要使用手机与蓝牙通信,而且是手机发送数据给蓝牙模块,所以设置为从模式。
UART指令用来设置蓝牙通信的比特率,初始波特率一般为9600,。但是本人习惯设置为115200。
同时,我们也可以发送指令查询我们对蓝牙模块的配置,下图即我对蓝牙的配置(主模式、波特率:115200)。
三、程序设计
因为蓝牙串口通信与串口通信并没有区别,所以我们使用例程中的串口程序USART1修改,但是使用串口USART2。
例程中的USART1程序中,首先是对引脚PA2、PA3的初始化以及USART1的配置,我们只需要将USART1的引脚改为USART2的引脚PA2、PA3并将USART1改为USART2就完成了初始化。但是,数据收发确实在中断服务程序中完成的,我们需要了解如何进入中断服务程序,如何进行数据收发。因此,需要查看串口USART的寄存器。
首先,我们查看UART中断状态寄存器,了解程序如何进入中断。
其中,位1接收有效数据中断标志位,即当接收到有效数据以后,改位置1,产生中断。然后,在中断服务程序中,单片机读取接收到的数据。
但是需要注意,每次进入中断服务程序以后,一定要将中断标志位清零。开始调试是,总是不能进入主函数的处理函数,于是在中断服务程序里加了一段LED闪烁的程序,发现即使数据接收结束,LED一直闪烁,说明还是一直在进行中断,发现了问题。
所以我们要置位中断清除寄存器的位1——接收中断清除位。还有,因为是将UART1的程序改成UART2的程序,所以请大家修改是一定仔细。我因为将其中一个UART1忘记修改,调试了整整一天没发现问题所在!!!
其他的配置与UART1完全一样,大家可以自己对照着进行编写。还有,为了区分发送的两段数据是两次,加入了定时器4,间隔超过10MS即为两段数据(两次发送的数据)。
四、下载验证。
下载好程序以后,打开手机蓝牙软件,搜索设备。蓝牙串口助手手机.zip
如上图,蓝牙设备为DSFSLAVE,连接进入键盘模式。提示连接成功,这款软件,你可以随意设置按键发送的值。
按下按键中的S和R按键,会提示发送成功。
按下R按键,LED0点亮。
按下S按键,LED0熄灭。
五、额外推荐
这里强势安利一波灵动微电制作的DEBUGER,性能感觉很不错,而且简约小巧。
不过可惜,我没有固件,心里不踏实。
在正式内容开始之前,我想宣布一件很沉痛的事情:跟随许久的盗版J-link固件掉了。本来固件掉了也没啥,顶多重新刷一哈。结果拆机以后蒙蔽了,板子上赫然写着J-Link V9.3,主控芯片是STM32F205RGT6。找了同学的J-Link来重刷固件,我的天,结果也掉了。不过万幸,J-Link V8,主控是AT91SAM7S64,重新刷写方法比较简单,成功了。吓得我赶紧放弃了重新刷固件。如果有大神会刷V9.3,请一定指导一下。
接下来,介绍一下,我使用MM32F103开发板完成的第一个小实验。
一、安装器件库
开始开发之前,我们需要安装器件库。刚开始我按照MM32F103资料里的器件包双击安装,结果安装错误。
后来发现自己的Keil版本太低了,MM32F103的器件包需要V5.18及以上版本才支持。所以,大家安装器件包前要先查看Keil的版本,如果版本过低,需要升级或重新安装。可以点击菜单栏中的Help,查看Keil版本,出现如下对话框:
更新好Keil后,我们就可以直接双击MM32F103的器件包进行安装,也可以通过菜单栏中的PACK installer进行安装。点击后,keil自动加载各种器件包,我们选择MM32F103的即可,然后点击右边的install。
同时,我们可以点击Examples按钮,下载MM32F103的例程:
二、创建工程
在菜单栏中点击Project按钮,即可创建新工程,器件选择MMF103。其他的步骤与STM32完全一样,这里就不多说。
我是直接将下载的例程的工程拷贝一份,这样就不需要再麻烦的新建工程,只需要添加外设驱动文件就可以了。
三、程序设计
第一个小实验,我做的是按键LED,用3个按键控制2个LED的亮灭状态。
因为工程中已经有LED灯的驱动程序,所以接下来只需要编写按键KEY的驱动和主函数就可以了。
在HARDWARE文件夹下新建一个名为KEY的文件夹,在该文件夹下新建KEY.c和KEY.h文件,然后将文件添加到工程中,如下图。
如果你使用的是例程修改,可能没有启动文件,CMSIS和Device这两个文件夹,需要自己添加。
点击菜单栏中第一个绿色按钮,在CMSIS下勾选CORE,在Device下勾选startup。
注意,如果工程中已经有了startup文件夹,不要重复勾选,会出错。
然后,开始编写按键驱动程序。
首先,要对按键进行初始化,即对按键IO口的配置。
然后,编写按键扫描函数。
程序设计完成后,要编译、Debug直到程序没有错误。
四、下载验证
刚才提到,因为本人的Jlink下岗了,所以我就采用了USB转串口的下载方式。可是,连接开发板以后,虽然识别出端口,但是灵动微电提供的烧录软件不能连接开发板,下载失败。
我查阅了提供的资料,也尝试更改了Bootloader,最终都没有成功。问题没解决,好尴尬,以后再继续研究研究,到底哪里疏忽了。
不过想起来,有一个STlink,就用它下载了。点击菜单栏中的魔法棒,出现下面对话框。选择ST-Link,模式采用SWD模式,并选择正确容量的Flash。
然后就可以点击菜单栏中的下载按钮进行下载。
实验结果:WAKE控制LED0、1亮灭;KEY1控制LED1亮灭;KEY0控制LED0亮灭。http://v.youku.com/v_show/id_XMTYyODkwNDEyNA==.html
五、开发体会
这块开发板整体来说与STM32有着千丝万缕的联系,所以使用起来比较亲切,程序设计也很熟悉。但是,我觉得想要吸引像我这样的入门新手,需要多一些人性化设计的外设接口,毕竟没人愿意用杜邦线乱接,不美观不说,还容易出错。不过有2401接口这点我挺喜欢的,正好要用!