本文主要是介绍ARM开发环境入门——mdk5的安装及简单程序的编译和Proteus程序设计仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ARM开发环境入门
文章目录
- ARM开发环境入门
- 前言
- 一、mdk5软件和stm32包的安装
- (1)mdk5软件的安装
- (2)stm32包的安装
- 二、stm32“LED闪烁”程序编译
- 1.打开mdk5软件,建立一个工程
- 2.创建一个文本,输入代码,保存为.c文件
- 3.将.c文件加入到工程下
- 4.编译
- 三、Proteus程序设计和仿真
- 1.在keil4软件编译程序
- 2.在Proteus软件上设计电路
- 3.Proteus与Keil4的联调
- 总结
- 参考文献
前言
本文主要介绍了安装mdk5软件和stm32包的过程,并编译一个stm32简单的程序编译——“LED闪烁”和用Proteus电路仿真软件完成一个51程序设计并仿真——“数码管显示1到F”
一、mdk5软件和stm32包的安装
(1)mdk5软件的安装
1.右键点击安装包 ,以管理员身份运行,出现安装向导界面,
点击“Next”。
2.勾选“I agree to….”,点击“Next”。
3.选择软件和支持包路径(可以保持默认),点击“Next”。
4.填写名字等信息,点击“Next”。
5.安装过程等几分钟。
6.安装过程中弹出下面界面,点击“确定”。
7.安装完成,点击“Finish”。
(2)stm32包的安装
1.双击 Keil.STM32F1xx_DFP.2.1.0.pack,如下图。
2.选择 MDK5 的安装路径,点击“Next”开始安装,如下图。
3.安装完成,点击“Finish”,如下图。
二、stm32“LED闪烁”程序编译
1.打开mdk5软件,建立一个工程
首先点击project,选择“New uVision project”,如下图所示:
编辑工程名和保存路径:
选择合适的stm32的芯片:
并进行如下的勾选:
这样一个工程就创建完成了。
2.创建一个文本,输入代码,保存为.c文件
首先创建一个新文本:
输入代码如下:
#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文件:
3.将.c文件加入到工程下
点击"Add Existing Files to Group…"
选择之前保存的.c文件:
4.编译
运行结果如下:
三、Proteus程序设计和仿真
1.在keil4软件编译程序
建立工程的过程类似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++);
}
}
}
编译:
2.在Proteus软件上设计电路
建立工程然后选择相应的元器件,连接线路如下:
3.Proteus与Keil4的联调
(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的连接调试教程
这篇关于ARM开发环境入门——mdk5的安装及简单程序的编译和Proteus程序设计仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!