本帖最后由 lulugl 于 2024-10-18 19:52 编辑

【前言】
感谢面包板社区与敏矽微科技给了我体验敏矽微ME32F103 Demokit开发板的机会。拿到开发板后,上百度网盘拿的到了资料,今天成功的体验了一下快捷的开发。
【资料准备】
工程是在百度网盘的ME32F103目下面,下载后解压出来,在里面就有我们开发需要的资料,如下图标注所示:
image.png
【软件安装】
双击安装.pack包后,就可以使用mdk来进行开发了。
【工程示例】
image.png
在lib2.2下面有齐全的示例,打开包后就可以直接运行下载。
【下载】
我使用jlink进行下载,手上没有me32的下载,可以直接选用stm32f103RBT6的下载就行。在keil的debug下面选用SW下载,可以成功的看到芯片:
image.png
打开demo 4dig 7led工程,在demo.c中可以看到代码如下:
  1. //LED display matrix demo Main Program

  2. #include "me32f103.h"
  3. #include "me32f103_sys.h"
  4. #include "me32f103_ioconfig.h"
  5. #include "me32f103_led.h"

  6. extern uint32_t PCLK;
  7. //Main function entry
  8. //a b c d e f g dp
  9. //seg 0~7
  10. //                 0    1     2    3   4    5    6    7    8     9  dp
  11. uint8_t led[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80};

  12. int main(void)
  13. {
  14.         uint8_t graytemp=0;
  15.         uint8_t grayinc=1;
  16.         SYSCON->CLKBYPASSEN=3;
  17.         SystemCoreClockUpdate ();
  18.         //initial LED pin
  19.         PA9_INIT(PA9_LED_COM0);
  20.         PA10_INIT(PA10_LED_COM1);
  21.         PA11_INIT(PA11_LED_COM2);
  22.         PA12_INIT(PA12_LED_COM3);
  23. //        PB8_INIT(PB8_LED_COM4);
  24. //        PB9_INIT(PB9_LED_COM5);
  25. //        PC14_INIT(PC14_LED_COM6);
  26. //        PC15_INIT(PC15_LED_COM7);

  27.         PB3_INIT(PB3_LED_SEG0);
  28.         PB4_INIT(PB4_LED_SEG1);
  29.         PB5_INIT(PB5_LED_SEG2);
  30.         PB6_INIT(PB6_LED_SEG3);
  31.         PA4_INIT(PA4_LED_SEG4);
  32.         PA5_INIT(PA5_LED_SEG5);
  33.         PA6_INIT(PA6_LED_SEG6);
  34.         PA7_INIT(PA7_LED_SEG7);

  35. //        PB15_INIT(PB15_LED_COMSEG8);
  36. //        PB14_INIT(PB14_LED_COMSEG9);
  37. //        PB13_INIT(PB13_LED_COMSEG10);
  38. //        PB12_INIT(PB12_LED_COMSEG11);
  39. //        PD2_INIT(PD2_LED_COMSEG12);
  40. //        PC12_INIT(PC12_LED_COMSEG13);
  41. //        PC11_INIT(PC11_LED_COMSEG14);
  42. //        PC10_INIT(PC10_LED_COMSEG15);
  43.         
  44.         LED_Init (COM0_3,CATHODE,0);
  45.         
  46.         while(1)
  47.         {
  48.                 if (grayinc)
  49.                         graytemp++;
  50.                 else
  51.                         graytemp--;
  52.                 if (graytemp==0xFF)
  53.                         grayinc=0;
  54.                 if (graytemp==0)
  55.                         grayinc=1;               
  56.                         
  57.                 LED_Fill(COM3,led[3],graytemp);
  58.                 LED_Fill(COM2,led[2],graytemp);
  59.                 LED_Fill(COM1,led[1],graytemp);
  60.                 LED_Fill(COM0,led[0],graytemp);
  61.                 SYS_Delay(0x3fff);
  62.         }

  63. }


代码阅读起来也非常的清晰,使用LED_Fill可以成功的对4个数据进行点亮。
【计数器代码的编写】
  1. while(1)
  2.         {
  3.                 tick++;
  4.                 if(tick >=9999)
  5.                 {
  6.                         tick = 0;
  7.                 }
  8.                 LED_Fill(COM0,led[tick/1000],0xFF);
  9.                 LED_Fill(COM1,led[tick%1000/100],0xFF);
  10.                 LED_Fill(COM2,led[tick%100/10],0xFF);
  11.                 LED_Fill(COM3,led[tick%10],0xFF);
  12.                 SYS_Delay(0xffff);
  13.         }

【实验效果】
可以看到数据码计时增加显示: