返回列表 发新帖我要提问本帖赏金: 20.00元(功能说明)

[MM32硬件] 【MM32 eMiniBoard测评报告】+第一次评测

[复制链接]
 楼主| 神圣雅诗人 发表于 2020-4-22 19:59 | 显示全部楼层 |阅读模式
刚到手的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,打开后,编译没有问题
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "led.h"
  4. #include "key.h"
  5. /********************************************************************************************************
  6. **函数信息 :main(void)                       
  7. **功能描述 :
  8. **输入参数 :无
  9. **输出参数 :无
  10. ********************************************************************************************************/
  11. int main(void)
  12. {
  13.     u8 t=0;
  14.    
  15.     delay_init();       
  16.     LED_Init();                                   //初始化与LED连接的硬件接口
  17.     KEY_Init();                  //初始化与按键连接的硬件接口
  18.    
  19.     while(1)
  20.     {
  21.         t=KEY_Scan(0);                //得到键值
  22.         switch(t)
  23.         {                                 
  24.         case KEY1_PRES://K1默认不连PC13,默认连接reset复位按键,所以按下K1会复位
  25.             LED1_TOGGLE();
  26.             break;
  27.         case WKUP_PRES:
  28.             LED2_TOGGLE();
  29.             break;
  30.         case KEY3_PRES:                               
  31.             LED3_TOGGLE();
  32.             break;
  33.         case KEY4_PRES:                               
  34.             LED4_TOGGLE();
  35.             break;
  36.         default:
  37.             delay_ms(10);       
  38.         }
  39.     }
  40. }
  1. #include "led.h"

  2. /********************************************************************************************************
  3. **函数信息 :LED_Init(void)                        
  4. **功能描述 :LED初始化
  5. **输入参数 :无
  6. **输出参数 :无
  7. ********************************************************************************************************/
  8. void LED_Init(void)
  9. {
  10.    
  11.     RCC->AHBENR|=0xf<<17;  //使能GPIOA时钟          
  12.     RCC->APB2ENR|=0x1;  
  13.     //JTAG_Set(SWD_ENABLE);        //关闭JTAG,开启SWD
  14.    
  15.     GPIOA->CRH|=GPIO_CRH_MODE15;         //GPIOA->CRH|=0x30000000;//PA15 推挽输出            
  16.     GPIOA->ODR|=GPIO_ODR_ODR15;            // GPIOA->ODR|=1<<15;   //PA15 输出高
  17.    
  18.     GPIOB->CRL|=GPIO_CRL_MODE3|GPIO_CRL_MODE4|GPIO_CRL_MODE5;      ////PB3,PB4,PB5推挽输出
  19.     GPIOB->ODR|=GPIO_ODR_ODR3|GPIO_ODR_ODR4|GPIO_ODR_ODR5;          ////PB.3,PB4,PB5输出高
  20.    
  21.     LED1_ON();
  22.     LED2_ON();
  23.     LED3_ON();
  24.     LED4_ON();
  25. }

  1. #include "key.h"
  2. #include "delay.h"


  3. //按键初始化函数
  4. //PA0 PC13 PB10 PB11设置成输入
  5. void KEY_Init(void)
  6. {
  7.    
  8.    
  9.     RCC->AHBENR|=0xf<<17;   //RCC->APB2ENR|=1<<2;  //使能GPIOA时钟                       
  10.    
  11.     GPIOA->CRL&=0XFFFFFFF0;        //PA0设置成输入        ,K2(WK_UP)
  12.     GPIOA->CRL|=GPIO_CRL_CNF0_1;   
  13.    
  14.     GPIOC->CRH&=0XFF0FFFFF;        //PC13设置成输入,K1          
  15.     GPIOC->CRH|=GPIO_CRH_CNF13_1;   
  16.     GPIOC->ODR|=GPIO_ODR_ODR13;                   //PC13上拉
  17.    
  18.     GPIOB->CRH&=0XFFFF00FF;        //PB10,PB11设置成输入,K3,K4          
  19.     GPIOB->CRH|=GPIO_CRH_CNF10_1|GPIO_CRH_CNF11_1;   
  20.     GPIOB->ODR|=GPIO_ODR_ODR10|GPIO_ODR_ODR11;                   //PB10,PB11上拉
  21.    
  22. }
  23. //按键处理函数
  24. //返回按键值
  25. //mode:0,不支持连续按;1,支持连续按;
  26. //返回值:
  27. //0,没有任何按键按下
  28. //KEY1_PRES,KEY1按下
  29. //WKUP_PRES,WK_UP按下
  30. //KEY3_PRES,KEY3按下
  31. //KEY4_PRES,KEY4按下
  32. u8 KEY_Scan(u8 mode)
  33. {         
  34.     static u8 key_up=1;//按键按松开标志
  35.     if(mode)key_up=1;  //支持连按                  
  36.     if(key_up&&(KEY1==0||WK_UP==1||KEY3==0||KEY4==0))
  37.     {
  38.         delay_ms(10);//去抖动
  39.         key_up=0;
  40.         if(KEY1==0)return KEY1_PRES;
  41.         else if(WK_UP==1)return WKUP_PRES;
  42.         else if(KEY3==0)return KEY3_PRES;
  43.         else if(KEY4==0)return KEY4_PRES;
  44.     }else if(KEY1==1&&KEY3==1&&KEY4==1&&WK_UP==0)key_up=1;              
  45.     return 0;// 无按键按下
  46. }



















烧写的时候遇到问题了,官网提供的软件ispV2.3.exe,打开后点没反应,连接不上,弄了好久都没搞好,先网上找找资料再来斗

批注 2020-04-22 194859.jpg

打赏榜单

ssysr 打赏了 10.00 元 2021-07-22

王心宝 打赏了 10.00 元 2021-07-22

gaoyang9992006 发表于 2020-4-22 20:24 | 显示全部楼层
你的按键程序,按键能有效吗,跟开发板的都不对应
 楼主| 神圣雅诗人 发表于 2020-4-23 07:44 | 显示全部楼层
gaoyang9992006 发表于 2020-4-22 20:24
你的按键程序,按键能有效吗,跟开发板的都不对应

难道我下错了
gaoyang9992006 发表于 2020-4-23 08:27 | 显示全部楼层

官方提供的例子就不是针对这个开发板的,按键端口都不匹配,按键想正常使用要自己重新配置。
1421027452 发表于 2020-5-9 15:01 | 显示全部楼层
流水灯闪的也那么快
--------------------------
出厂测试程序通过调节电位器调整闪烁频率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

406

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

10

主题

406

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部