Win10下MDK5,stm32pack的安装以及stm32的简单程序编译教程
- 一、安装流程
- 二、MDK-5.10注册
- 三、stm32的简单程序的编译
一、安装流程
(1)MDK-5.10安装
1.双击mdk_510.exe,进行安装。这里我们将其安装到D盘,MDK5.10文件夹下,需要设置安装路径。
2.点击"I agree …“和"Next”。
3.选择软件安装路径。
4.填写注册信息。
5.等待安装。
6.软件安装完成之后会自动弹出一个keil的网页和pack Installer窗口。
(2)stm32 pack安装在解压缩后的文件夹中双击依次打开以下pack,并完成安装。
二、MDK-5.10注册
1.以管理员身份运行的Keil uVision5。
2.点击:File,License Management,调出注册管理界面。
3.关闭杀毒软件。
4.运行光盘MDK5目录下的keygen.exe,设置Target为ARM。
5.拷贝MDK License Management 界面里面的CID号
6.将CID号粘贴到keygen.exe里面CID栏,点击:Generate,即可获得注册码。
7.拷贝注册码到License Management里面,点击Add LIC即可完成注册。
三、stm32的简单程序的编译
(1)、建立一个工程1.打开Keil uVision5,找到File,然后点击New uVision Project
2.选择需要使用的stm32芯片
3.
(1)对Run-Time Environment进行设置,设置完成后,点击OK,这样一个工程就建立完成
(2)编写程序代码
///*************************
s1:Äϱ± ºì ¶«Î÷ ÂÌ
s2:Äϱ± ºì ¶«Î÷ »Æ
s3:Äϱ± ÂÌ ¶«Î÷ ºì
s4:Äϱ± »Æ ¶«Î÷ ºì
*************************/
#include<reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define count 50000
#define TH_0 (65536-count)/256
#define TL_0 (65536-count)%256
sbit ew_led_r=P3^0;
sbit ew_led_y=P3^1;
sbit ew_led_g=P3^2;
sbit ns_led_r=P3^3;
sbit ns_led_y=P3^4;
sbit ns_led_g=P3^5;
sbit bit_0=P2^0;
sbit bit_1=P2^1;
uchar code duanxuan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar sec=30;
uchar flag=1;
void delay(uint iii)
{
while(iii--);
}
void display()
{
if(flag==1||flag==2)//״̬1ºÍ״̬2£¬¶«Î÷±ÈÄϱ±ÉÙ2Ãë
{
bit_0=0;bit_1=1;
P0=duanxuan[sec%10];
delay(100);P0=0x00;
if(sec>2)
{
P1=duanxuan[(sec-2)%10];
delay(200);P1=0x00;
}
else
{
P1=duanxuan[sec%10];
delay(200);P1=0x00;
}
bit_0=1;bit_1=0;
P0=duanxuan[sec/10];
delay(100);P0=0x00;
if(sec>2)
{
P1=duanxuan[(sec-2)/10];
delay(200);P1=0x00;
}
else
{
P1=duanxuan[sec/10];
delay(200);P1=0x00;
}
}
else //״̬3ºÍ״̬4£¬Äϱ±±È¶«Î÷ÉÙ2Ãë
{
bit_0=0;bit_1=1;
P1=duanxuan[sec%10];
delay(100);P1=0x00;
if(sec>2)
{
P0=duanxuan[(sec-2)%10];
delay(200);P0=0x00;
}
else
{
P0=duanxuan[sec%10];
delay(200);P0=0x00;
}
bit_0=1;bit_1=0;
P1=duanxuan[sec/10];
delay(100);P1=0x00;
if(sec>2)
{
P0=duanxuan[(sec-2)/10];
delay(200);P0=0x00;
}
else
{
P0=duanxuan[sec/10];
delay(200);P0=0x00;
}
}
}
void timer_init()
{
TMOD=0x01;
EA=1;ET0=1;TR0=1;
TH0=TH_0;TL0=TL_0;
}
void led_display()
{
if(flag==1) //s1
{
ew_led_r=0;
ew_led_g=1;
ew_led_y=1;
ns_led_r=1;
ns_led_g=0;
ns_led_y=1;
}
else if(flag==2) //s2
{
ew_led_r=0;
ew_led_g=1;
ew_led_y=1;
ns_led_r=1;
ns_led_g=1;
ns_led_y=0;
}
else if(flag==3) //s3
{
ew_led_r=1;
ew_led_g=0;
ew_led_y=1;
ns_led_r=0;
ns_led_g=1;
ns_led_y=1;
}
else if(flag==4) //s4
{
ew_led_r=1;
ew_led_g=1;
ew_led_y=0;
ns_led_r=0;
ns_led_g=1;
ns_led_y=1;
}
else
{
flag=1;//Ò»¹²Ëĸö״̬
}
}
void main()
{
timer_init();
while(1)
{
display();
led_display();
}
}
void timer0() interrupt 1
{
static uchar jjj=0;
TH0=TH_0;TL0=TL_0;
if(++jjj==20)
{
jjj=0;
sec--;
if(sec==0)
{
sec=30;
flag++;//s3
}
if(sec-2==0)
{
flag++;//s2 s4
}
}
}
(3)编译结果
(4)仿真结果
共有条评论 网友评论