本文主要介绍了安装mdk5软件和stm32包的过程,并编译一个stm32简单的程序编译——“LED闪烁”和用Proteus电路仿真软件完成一个51程序设计并仿真——“数码管显示1到F”
1.右键点击安装包 ,以管理员身份运行,出现安装向导界面, 点击“Next”。 2.勾选“I agree to….”,点击“Next”。 3.选择软件和支持包路径(可以保持默认),点击“Next”。 4.填写名字等信息,点击“Next”。 5.安装过程等几分钟。 6.安装过程中弹出下面界面,点击“确定”。 7.安装完成,点击“Finish”。
1.双击 Keil.STM32F1xx_DFP.2.1.0.pack,如下图。 2.选择 MDK5 的安装路径,点击“Next”开始安装,如下图。 3.安装完成,点击“Finish”,如下图。
首先点击project,选择“New uVision project”,如下图所示: 编辑工程名和保存路径: 选择合适的stm32的芯片: 并进行如下的勾选: 这样一个工程就创建完成了。
首先创建一个新文本:
输入代码如下:
#define PERIPH_BASE ((unsigned int)0x40000000) #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) #define GPIOA_BASE (APB2PERIPH_BASE + 0x0800) #define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00) #define GPIOC_BASE (APB2PERIPH_BASE + 0x1000) #define GPIOD_BASE (APB2PERIPH_BASE + 0x1400) #define GPIOE_BASE (APB2PERIPH_BASE + 0x1800) #define GPIOF_BASE (APB2PERIPH_BASE + 0x1C00) #define GPIOG_BASE (APB2PERIPH_BASE + 0x2000) #define GPIOA_ODR_Addr (GPIOA_BASE+12) //0x4001080C #define GPIOB_ODR_Addr (GPIOB_BASE+12) //0x40010C0C #define GPIOC_ODR_Addr (GPIOC_BASE+12) //0x4001100C #define GPIOD_ODR_Addr (GPIOD_BASE+12) //0x4001140C #define GPIOE_ODR_Addr (GPIOE_BASE+12) //0x4001180C #define GPIOF_ODR_Addr (GPIOF_BASE+12) //0x40011A0C #define GPIOG_ODR_Addr (GPIOG_BASE+12) //0x40011E0C #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) #define MEM_ADDR(addr) *((volatile unsigned long *)(addr)) #define LED0 MEM_ADDR(BITBAND(GPIOA_ODR_Addr,8)) //#define LED0 *((volatile unsigned long *)(0x422101a0)) //PA8 typedef struct { volatile unsigned int CR; volatile unsigned int CFGR; volatile unsigned int CIR; volatile unsigned int APB2RSTR; volatile unsigned int APB1RSTR; volatile unsigned int AHBENR; volatile unsigned int APB2ENR; volatile unsigned int APB1ENR; volatile unsigned int BDCR; volatile unsigned int CSR; } RCC_TypeDef; #define RCC ((RCC_TypeDef *)0x40021000) typedef struct { volatile unsigned int CRL; volatile unsigned int CRH; volatile unsigned int IDR; volatile unsigned int ODR; volatile unsigned int BSRR; volatile unsigned int BRR; volatile unsigned int LCKR; } GPIO_TypeDef; #define GPIOA ((GPIO_TypeDef *)GPIOA_BASE) void LEDInit(void) { RCC->APB2ENR|=1<<2; //GPIOA GPIOA->CRH&=0XFFFFFFF0; GPIOA->CRH|=0X00000003; } void Delay_ms(volatile unsigned int t) { unsigned int i,n; for(n=0;n<t;n++) for(i=0;i<800;i++); } int main(void) { LEDInit(); while(1) { LED0=0; Delay_ms(500); LED0=1; Delay_ms(500); } }点击保存为.c文件:
点击"Add Existing Files to Group…" 选择之前保存的.c文件:
运行结果如下:
建立工程的过程类似mdk5,下图是输入代码: 代码如下:
#include<reg51.h> unsigned char code tab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; main() { unsigned int j; unsigned char i; while(1) { for(i=1;i<=15;i++) { P1=tab[i]; for(j=0;j<=30000;j++); } } }编译:
建立工程然后选择相应的元器件,连接线路如下:
(1)keil4软件 在Keil软件上单击“Project菜单/Options for Target”选项或者点击工具栏的“option for ta rget”按钮 。
弹出窗口,点击“Debug”按钮,出现如图所示页面。 在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor-51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。
再点击“Setting”按钮。
设置通信接口,在“Host”后面添上 “127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添 加“8000”。设置好的情形如图所示,点击“OK”按钮即可。最后将工程编译,进入调试状态,并运行。 (2)Proteus软件 进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“use romote debuger monitor”,如图所示。此后,便可实现Keil与Proteus连接调试。 最后必须右击单片机加载hex文件,开始调试。 最后运行仿真,仿真结果如下:
就是今天要讲的内容,本文仅仅简单介绍了mdk5和stm32包的安装,并用stm32进行了简单的程序编译,还复习了怎样用Proteus电路仿真软件完成一个51程序设计并仿真,谢谢观赏。
1.STM32底座实验指导书 2.Proteus8与Keil4的连接调试教程