本帖最后由 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中可以看到代码如下:
//LED display matrix demo Main Program

  • #include "me32f103.h"
  • #include "me32f103_sys.h"
  • #include "me32f103_ioconfig.h"
  • #include "me32f103_led.h"

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

  • int main(void)
  • {
  •         uint8_t graytemp=0;
  •         uint8_t grayinc=1;
  •         SYSCON->CLKBYPASSEN=3;
  •         SystemCoreClockUpdate ();
  •         //initial LED pin
  •         PA9_INIT(PA9_LED_COM0);
  •         PA10_INIT(PA10_LED_COM1);
  •         PA11_INIT(PA11_LED_COM2);
  •         PA12_INIT(PA12_LED_COM3);
  • //        PB8_INIT(PB8_LED_COM4);
  • //        PB9_INIT(PB9_LED_COM5);
  • //        PC14_INIT(PC14_LED_COM6);
  • //        PC15_INIT(PC15_LED_COM7);

  •         PB3_INIT(PB3_LED_SEG0);
  •         PB4_INIT(PB4_LED_SEG1);
  •         PB5_INIT(PB5_LED_SEG2);
  •         PB6_INIT(PB6_LED_SEG3);
  •         PA4_INIT(PA4_LED_SEG4);
  •         PA5_INIT(PA5_LED_SEG5);
  •         PA6_INIT(PA6_LED_SEG6);
  •         PA7_INIT(PA7_LED_SEG7);

  • //        PB15_INIT(PB15_LED_COMSEG8);
  • //        PB14_INIT(PB14_LED_COMSEG9);
  • //        PB13_INIT(PB13_LED_COMSEG10);
  • //        PB12_INIT(PB12_LED_COMSEG11);
  • //        PD2_INIT(PD2_LED_COMSEG12);
  • //        PC12_INIT(PC12_LED_COMSEG13);
  • //        PC11_INIT(PC11_LED_COMSEG14);
  • //        PC10_INIT(PC10_LED_COMSEG15);
  •         
  •         LED_Init (COM0_3,CATHODE,0);
  •         
  •         while(1)
  •         {
  •                 if (grayinc)
  •                         graytemp++;
  •                 else
  •                         graytemp--;
  •                 if (graytemp==0xFF)
  •                         grayinc=0;
  •                 if (graytemp==0)
  •                         grayinc=1;               
  •                         
  •                 LED_Fill(COM3,led[3],graytemp);
  •                 LED_Fill(COM2,led[2],graytemp);
  •                 LED_Fill(COM1,led[1],graytemp);
  •                 LED_Fill(COM0,led[0],graytemp);
  •                 SYS_Delay(0x3fff);
  •         }

  • }


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

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