【前言】
感谢面包板社区与敏矽微科技给了我体验敏矽微ME32F103 Demokit开发板的机会。拿到开发板后,上百度网盘拿的到了资料,今天成功的体验了一下快捷的开发。
【资料准备】
工程是在百度网盘的ME32F103目下面,下载后解压出来,在里面就有我们开发需要的资料,如下图标注所示:
![image.png image.png](https://static.assets-stash.eet-china.com/forum/202410/18/172925106051155193100gkf77zrjjv5mp58v.png)
【软件安装】
双击安装.pack包后,就可以使用mdk来进行开发了。
【工程示例】
![image.png image.png](https://static.assets-stash.eet-china.com/forum/202410/18/172925115179820193231w51ch41c4k53hc45.png)
在lib2.2下面有齐全的示例,打开包后就可以直接运行下载。
【下载】
我使用jlink进行下载,手上没有me32的下载,可以直接选用stm32f103RBT6的下载就行。在keil的debug下面选用SW下载,可以成功的看到芯片:
![image.png image.png](https://static.assets-stash.eet-china.com/forum/202410/18/172925130252183193502o47l5g5u7eegg0ig.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);
}
}
复制代码【计数器代码的编写】
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);
}
复制代码【实验效果】
可以看到数据码计时增加显示: