刚到手的mm32L073pf,附上官网网址http://www.mm32mcu.com/我以前从来没听过这款开发板和这家公司,灵动,名字不错,有点像剑灵
了解了一下灵动的产品生态,跟ST差不多,
接着先下载相应的资料吧,http://www.mm32mcu.com/download1.aspx这里是资料链接,收到的是mm32L073pf,下载了MM32L0xx(n) 产品手册,MM32L0xx(n) 用户手册,MM32L0xx(n) 库函数和例程,MM32系列 KEIL pack文件包,MM32-Link 应用开发手册,MM32 ISP下载工具,MM32 USB 驱动安装包(我是WIN10,其实不用下)
接下来先通电看看吧
刚上电,板子蜂鸣器一响,吓了我一跳,不知道哪个**写的出厂程序,流水灯闪的也那么快,亮瞎我的眼,板子上的蜂鸣器我还是第一次见,有点东西。
接下来,打开官网提供的例程,E:\MM32L0xx_n_Lib_Samples_V1.20_SC\MM32L073PF_MiniBoard_libReg\MBL073PF_n_reg\BLINK\IOKEY
里面有KEIL的和IAR的,我用的KEIL,打开后,编译没有问题
#include "delay.h"
#include "sys.h"
#include "led.h"
#include "key.h"
/********************************************************************************************************
**函数信息 :main(void)
**功能描述 :
**输入参数 :无
**输出参数 :无
********************************************************************************************************/
int main(void)
{
u8 t=0;
delay_init();
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init(); //初始化与按键连接的硬件接口
while(1)
{
t=KEY_Scan(0); //得到键值
switch(t)
{
case KEY1_PRES://K1默认不连PC13,默认连接reset复位按键,所以按下K1会复位
LED1_TOGGLE();
break;
case WKUP_PRES:
LED2_TOGGLE();
break;
case KEY3_PRES:
LED3_TOGGLE();
break;
case KEY4_PRES:
LED4_TOGGLE();
break;
default:
delay_ms(10);
}
}
}
#include "led.h"
/********************************************************************************************************
**函数信息 :LED_Init(void)
**功能描述 :LED初始化
**输入参数 :无
**输出参数 :无
********************************************************************************************************/
void LED_Init(void)
{
RCC->AHBENR|=0xf<<17; //使能GPIOA时钟
RCC->APB2ENR|=0x1;
//JTAG_Set(SWD_ENABLE); //关闭JTAG,开启SWD
GPIOA->CRH|=GPIO_CRH_MODE15; //GPIOA->CRH|=0x30000000;//PA15 推挽输出
GPIOA->ODR|=GPIO_ODR_ODR15; // GPIOA->ODR|=1<<15; //PA15 输出高
GPIOB->CRL|=GPIO_CRL_MODE3|GPIO_CRL_MODE4|GPIO_CRL_MODE5; ////PB3,PB4,PB5推挽输出
GPIOB->ODR|=GPIO_ODR_ODR3|GPIO_ODR_ODR4|GPIO_ODR_ODR5; ////PB.3,PB4,PB5输出高
LED1_ON();
LED2_ON();
LED3_ON();
LED4_ON();
}
#include "key.h"
#include "delay.h"
//按键初始化函数
//PA0 PC13 PB10 PB11设置成输入
void KEY_Init(void)
{
RCC->AHBENR|=0xf<<17; //RCC->APB2ENR|=1<<2; //使能GPIOA时钟
GPIOA->CRL&=0XFFFFFFF0; //PA0设置成输入 ,K2(WK_UP)
GPIOA->CRL|=GPIO_CRL_CNF0_1;
GPIOC->CRH&=0XFF0FFFFF; //PC13设置成输入,K1
GPIOC->CRH|=GPIO_CRH_CNF13_1;
GPIOC->ODR|=GPIO_ODR_ODR13; //PC13上拉
GPIOB->CRH&=0XFFFF00FF; //PB10,PB11设置成输入,K3,K4
GPIOB->CRH|=GPIO_CRH_CNF10_1|GPIO_CRH_CNF11_1;
GPIOB->ODR|=GPIO_ODR_ODR10|GPIO_ODR_ODR11; //PB10,PB11上拉
}
//按键处理函数
//返回按键值
//mode:0,不支持连续按;1,支持连续按;
//返回值:
//0,没有任何按键按下
//KEY1_PRES,KEY1按下
//WKUP_PRES,WK_UP按下
//KEY3_PRES,KEY3按下
//KEY4_PRES,KEY4按下
u8 KEY_Scan(u8 mode)
{
static u8 key_up=1;//按键按松开标志
if(mode)key_up=1; //支持连按
if(key_up&&(KEY1==0||WK_UP==1||KEY3==0||KEY4==0))
{
delay_ms(10);//去抖动
key_up=0;
if(KEY1==0)return KEY1_PRES;
else if(WK_UP==1)return WKUP_PRES;
else if(KEY3==0)return KEY3_PRES;
else if(KEY4==0)return KEY4_PRES;
}else if(KEY1==1&&KEY3==1&&KEY4==1&&WK_UP==0)key_up=1;
return 0;// 无按键按下
}
烧写的时候遇到问题了,官网提供的软件ispV2.3.exe,打开后点没反应,连接不上,弄了好久都没搞好,先网上找找资料再来斗
|