在MDK5和完成一个STM32简单程序的编译

1、新建项目

(1)点击Project,New μVision Project……
在这里插入图片描述
(2)输入工程名,点击保存
在这里插入图片描述
(3)在Search里输入STM32F103CB,点击ok
在这里插入图片描述
(4)这里要设置stm32的启动项,不然编译程序时会报错,设置完后点击OK
在这里插入图片描述
(5)这样工程就创建完成了
在这里插入图片描述

2、编写STM32程序的代码

(1)创建一个空白文本
在这里插入图片描述
(2)输入以下代码

//宏定义,用于存放stm32寄存器映射
#define PERIPH_BASE           ((unsigned int)0x40000000)//AHB
#define APB2PERIPH_BASE       (PERIPH_BASE + 0x10000)
#define GPIOA_BASE            (APB2PERIPH_BASE + 0x0800)
//GPIOA_BASE=0x40000000+0x10000+0x0800=0x40010800,该地址为GPIOA的基地址
#define GPIOB_BASE            (APB2PERIPH_BASE + 0x0C00)
//GPIOB_BASE=0x40000000+0x10000+0x0C00=0x40010C00,该地址为GPIOB的基地址
#define GPIOC_BASE            (APB2PERIPH_BASE + 0x1000)
//GPIOC_BASE=0x40000000+0x10000+0x1000=0x40011000,该地址为GPIOC的基地址
#define GPIOD_BASE            (APB2PERIPH_BASE + 0x1400)
//GPIOD_BASE=0x40000000+0x10000+0x1400=0x40011400,该地址为GPIOD的基地址
#define GPIOE_BASE            (APB2PERIPH_BASE + 0x1800)
//GPIOE_BASE=0x40000000+0x10000+0x0800=0x40011800,该地址为GPIOE的基地址
#define GPIOF_BASE            (APB2PERIPH_BASE + 0x1C00)
//GPIOF_BASE=0x40000000+0x10000+0x0800=0x40011C00,该地址为GPIOF的基地址
#define GPIOG_BASE            (APB2PERIPH_BASE + 0x2000)
//GPIOG_BASE=0x40000000+0x10000+0x0800=0x40012000,该地址为GPIOG的基地址
#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类型别名
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类型别名
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;
//GPIOA指向地址GPIOA_BASE,GPIOA_BASE地址存放的数据类型为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;//LED熄灭
         Delay_ms(500);//延时时间
         LED0=1;//LED亮
         Delay_ms(500);//延时时间
     }
}

(3)按Ctrl+s保存,输入文件名xxx.c

3、程序编译

(1)右键Source Group 1,点击Add Existing Files to Group 1……
在这里插入图片描述
(2)选择刚才保存的C语言文件,点击Add,然后Close
在这里插入图片描述
(3)可以看到文件已经添加好了
在这里插入图片描述
(4)点击左上角的Build,可以看到编译结果没报错

在这里插入图片描述

4、程序仿真

(1)点击这个标志
在这里插入图片描述
(2)由于没有硬件,我们只能在MDK5上仿真,所以要点击Debug,选择Use Simulator,点击OK
在这里插入图片描述
(3)点击进行仿真
在这里插入图片描述

总结

因为没有硬件设施,所以只能先进行程序的编译和仿真测试,这是LED闪烁的程序,代码来源于网上,仅供参考,主要是学习MDK的使用方式。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Keil MDK5作为一款强大的MCU开发工具,可以用于从头开始建立STM32 Project项目。下面是详细的步骤: 1. 打开Keil MDK5软件,点击“File”菜单,选择“New”→“Project”来创建新工程。 2. 在弹出的对话框中,选择“STMicroelectronics”作为Manufacturer,选择“STM32F4xx”作为Device。 3. 输入工程名称,选择工程存放路径,然后点击“Save”按钮。 4. 在“Project”窗口中,点击“Options for Target”来打开“Target Options”页面。在这个页面中,我们可以设置编译器、链接器、调试器等选项。 5. 在“C/C++”选项中设置编译器,一般选择ARMCC,同时可以设置一些编译器的选项,如编译优化等。 6. 在“Linker”选项中设置链接器,一般选择ARMLINK,同时设置链接器的选项,如堆栈大小等。 7. 在“Debug”选项中设置调试器,一般选择ST-LINK Debugger,同时可以设置一些调试器的选项,如Flash编程等。 8. 在“Target”选项中设置目标设备,选择STM32F407VG,同时可以设置一些芯片的选项,如时钟频率等。 9. 点击“OK”按钮保存设置并关闭“Target Options”页面。 10. 在“Project”窗口中,右键点击“Source Group 1”目录,选择“Add Existing Files to Group”。 11. 在弹出的对话框中,选择工程所使用的源文件(.c、.h等)。 12. 在“Project”窗口中,右键点击“Target 1”目录,选择“Options for Target”来打开“Target Options”页面。 13. 在“Debug”选项中,勾选“Use ST-Link”选项,然后点击“Settings”按钮。 14. 在“ST-Link Debugger”页面中,设置一些调试器选项,如芯片型号、连接方式等,然后点击“OK”按钮保存并关闭页面。 15. 点击“Build”菜单,然后选择“Build Target”来编译工程。 16. 点击“Flash”菜单,然后选择“Download”来下载程序到芯片中。 17. 程序下载成功后,可以进行调试和测试。 以上就是Keil MDK5从头建立STM32 Project项目的详细步骤。通过这些步骤,您可以快速创建STM32工程,并开始您的MCU开发工作。 ### 回答2: Keil MDK5是一款广泛使用的嵌入式开发集成环境(IDE),它可以用来开发多种类型的嵌入式系统,包括基于ARM Cortex-M处理器的STM32系列芯片。下面是使用Keil MDK5从头建立一个STM32项目的详细步骤。 1. 安装Keil MDK5 首先,需要从Keil官网上下载和安装MDK5。安装完成后,打开Keil MDK5 IDE界面。 2. 创建新工程 在Keil MDK5 IDE界面中,选择“File”→“New…”菜单,弹出“Create New Project”对话框。在该对话框中,选择“Device Database”中的STM32系列,然后选择芯片型号和开发板,并指定工程文件夹,并设置工程名称,最后点击“OK”按钮。 3. 配置工程 在相关设备和程序库之前,必须设定一些工程配置项。这些项包括所使用的编译器、产生的代码、和选项。在Keil MDK5的工程管理器中,会显示新建的工程。右键单击该工程,并选择“Options for…”命令选项。在弹出的对话框中,配置编译器和链接器选项,以及其他必要的信息。 4. 添加外设驱动程序库 要使用STM32芯片上的外设,需要编写相应的驱动程序库。可以在ST网站上下载相应的驱动库文件。下载好后,将其解压缩,并添加到Keil MDK5的工程中。具体操作是,在工程管理器中,右键单击“Project”条目,选择“Add Files…”菜单项,并选择下载解压后生成的文件,然后选择“Add”按钮,即可加入工程中。 5. 编写程序 使用Keil MDK5 IDE所提供的开发工具,编写所需的STM32程序代码。通过设定代码所用的宏、数据类型、和内 Core外的存储器类型信息,可以得出性能和体积。 6. 编译和调试 使用Keil MDK5 IDE所提供的编译工具将程序编译成可执行文件,并运行调试程序,检查程序是否正常运行。主要是在工程管理器中,右键单击“Project”条目,选择“Build Target”菜单项,以执行编译操作,查看编译结果是否正常,并可以进行一些简单的调试和排错。 以上就是使用Keil MDK5从头建立一个STM32项目的详细步骤。通过这些步骤,可以快速地建立一份STM32程序,然后进行编译和调试。当然,在实际的项目开发中,还需要根据具体的要求进行一些调整和修改。 ### 回答3: Keil MDK5是一款非常常用的嵌入式开发环境,用于在嵌入式系统中开发、编译和调试。下面将详细介绍如何在Keil MDK5中从头开始建立STM32项目: 1.安装STM32支持包 在Keil MDK5中创建STM32项目之前,您需要先安装STM32支持包。您可以在Keil官方网站上下载并安装。安装完毕后,启动Keil MDK5。 2.创建新的项目 在Keil MDK5的菜单栏中,选择"File" -> "New Project",在弹出的对话框中选择"STM32F4xx"和"MDK-ARM"作为芯片类型和编译器类型。然后为您的项目选择一个合适的名称并选择存储的位置,最后单击"OK"按钮。 3.配置芯片参数和系统时钟 在创建新项目时,Keil MDK5会为您自动配置一些芯片参数。您可以在左侧的"Project"栏中选择"Options for Target"来进一步配置芯片参数,如GPIO、UART和SPI。同时你还需要配置系统时钟,以便更好地适应芯片型号。您可以在左侧的"Project"栏中选择"Manage Run-Time Environment"来更改时钟源和频率。 4.添加程序代码 将您的程序代码添加到项目中。可以在左侧的"Project"栏中添加新的源文件或在现有的源文件中添加代码。务必注意您的代码中所用的指令集是否与目标芯片所支持的指令集匹配。 5.编译和调试 在代码添加完成后,您可以通过编译和调试来验证代码是否正常工作。点击Keil的"Build"按钮来编译您的代码。如果出现错误,请确认代码是否正确并解决错误。如果编译成功,则可以使用Keil MDK5的"Simulator"或"Debug"功能来调试您的程序。 6.烧录 如果您已经完成程序编译和调试,可以通过烧录器将程序烧录到芯片中。选择"In-System Programming"后编译一下程序,然后你能通过烧录插件来将程序烧录到指定芯片上。 以上是在Keil MDK5中从头建立STM32项目的详细步骤。您只需要按照以上步骤一步一步进行操作,就能在Keil MDK5中成功开发和调试STM32项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值