[MM32软件] 【MM32 eMiniBoard测评报告】4、HMI_LCD串口屏+综合实验

[复制链接]
 楼主| 海洋无限 发表于 2020-5-24 13:26 | 显示全部楼层 |阅读模式
本帖最后由 海洋无限 于 2020-5-26 18:33 编辑

按照昨天的计划准备把几个实验整合到一起弄一个综合的例程,目前除了USB以外其他功能都基本实现了,这段时间工作比较忙,测评到这就先告一段落了,后面有时间再补上其他外设的测试
先来看看今天的测评结果:
1、按照计划目前整合了LED、Music和Photo部分,先来看个整体图,具体情况如下:
555.png
到这个界面后按Key3就会依次出现LED界面->Music界面->Photo界面->上图界面->LED界面->......循环,(USB界面未实现),每个界面如下:
2、LED界面
led1.jpg led2.jpg led3.jpg
上面左图是刚切换到界面的状态,这时按下Key4,界面上的指示就会好真是LED状态一样循环亮起来(流水灯),图2和图3是效果图
3、Music界面
buzzer1.jpg buzzer2.jpg
刚进入界面时如图一所示,按下Key4后,蜂鸣器鸣响,歌曲为蜂鸣器测评中的音乐,这时界面图标变为图2
4、Photo界面
p1.jpg p2.jpg p3.jpg p45.jpg
进入Photo界面后,界面就会定时切换显示图片(头像太丑没敢放,网上随便找了几张,哈哈),算是简单的电子相册功能吧
下面将重要部分处理的code贴上来
  1. switch(sLedHmiStatus.Page)
  2.    {
  3.      case HMI_PAGE0:
  4.       if(TRUE == sKey[KEY_3].ValidFlag){
  5.         sLedHmiStatus.Page = HMI_PAGE1;
  6.         DisPage(HMI_PAGE1);
  7.       }
  8.        break;
  9.      
  10.      case HMI_PAGE1:
  11.       if(TRUE == sKey[KEY_3].ValidFlag){
  12.         sLedHmiStatus.Page = HMI_PAGE2;
  13.           DisPage(HMI_PAGE2);
  14.       }
  15.       break;

  16.      case HMI_PAGE2:
  17.       if(TRUE == sKey[KEY_3].ValidFlag){
  18.         sLedHmiStatus.Page = HMI_PAGE3;
  19.         DisPage(HMI_PAGE3);
  20.         DisLed(5);
  21.       }
  22.       else if(TRUE == sKey[KEY_4].ValidFlag)
  23.       {
  24.         if(FALSE == sLedHmiStatus.PageValid)
  25.         {
  26.           sLedBlinkStatus.LedRefresh = TRUE;//LED流水灯的处理在LED处理的流程中,sLedBlinkStatus.LedRefresh为标志
  27.           sLedHmiStatus.PageValid = TRUE;
  28.         }
  29.         else{         
  30.           sLedBlinkStatus.LedRefresh = FALSE;
  31.           sLedHmiStatus.PageValid = FALSE;
  32.         }
  33.       }
  34.        break;

  35.      case HMI_PAGE3:
  36.       if(TRUE == sKey[KEY_3].ValidFlag){
  37.         sLedHmiStatus.Page = HMI_PAGE4;
  38.         DisPage(HMI_PAGE4);
  39.       }
  40.       else if(TRUE == sKey[KEY_4].ValidFlag)
  41.       {
  42.         sPlayMusic.PlayFlag = TRUE;//蜂鸣器鸣响,直到歌曲结束停止,
  43.         DisBuzzer(TRUE);
  44.       }
  45.        break;

  46.      case HMI_PAGE4:
  47.       if(TRUE == sKey[KEY_3].ValidFlag){
  48.         sLedHmiStatus.Page = HMI_PAGE1;
  49.         DisPage(HMI_PAGE1);
  50.       }
  51.        break;

  52.      default:
  53.        break;
  54.    }   
code比较简单,这里就不啰嗦了,后面的测评估计要等段时间了,等这段时间忙完再试吧。
总结下:
1、整体来说MM32的开发板硬件做工不错,板卡有开源硬件的相关接口,板载的调试器确实省了不少事,赞
2、从目前的测评效果看,代码风格和STM很像,上手容易,芯片稳定性也不错,价格没了解,如果价格优势明显的话,在一些低端场合这个芯片还是很有竞争力的
3、官方提供的文档很清晰,分门别类,资料好找。上手很容易,例程中也有一些问题,自己在测试时需要认真检查下底层驱动代码配置

另外在多一句嘴,例程的代码中有延时函数,关于延时函数我想说一点,写code中,像ms级别的延时根本不应该出现在代码中,延时应该仅仅出现在某些时序部分中
如果真的需要大的延时,建议才用简单的定时器调度处理方式,当cpu负担比较重的时候,一旦有实时任务处理时,系统反应的效果要好很多

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

本版积分规则

个人签名:永远忠于年轻时的梦想!

39

主题

540

帖子

1

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