ARM开发环境入门——mdk5的安装及简单程序的编译和Proteus程序设计仿真

本文主要是介绍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程序设计仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917862

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py