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

相关文章

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成