proteus结合keil-arm编译器构建STM32单片机项目进行仿真

这篇具有很好参考价值的文章主要介绍了proteus结合keil-arm编译器构建STM32单片机项目进行仿真。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    proteus是可以直接创建设计图和源码的,但是源码编译它需要借助keil-arm编译器,也就是我们安装keil-mdk之后自带的编译器。

    下面给出一个完整的示例,主要是做一个LED灯闪烁的效果。

    新建工程指定路径,Schematic,PCB layout都选择默认,在最后创建项目工程向导的时候,选择:Create Firmware Project:

proteus结合keil-arm编译器构建STM32单片机项目进行仿真,51单片机,单片机,proteus,STM32,寄存器,仿真

     硬件系列选择Cortex-M3,控制器类型选择STM32F103C6(其他类型,可能不会出现Compiler下拉选项),编译器类型如果没有选择项,点击后面的Compilers按钮,在弹出框中选择Keil for ARM,指定keil-mdk安装的ARM路径:

proteus结合keil-arm编译器构建STM32单片机项目进行仿真,51单片机,单片机,proteus,STM32,寄存器,仿真

    这样生成的项目,自带源码,源码结构如下所示:

proteus结合keil-arm编译器构建STM32单片机项目进行仿真,51单片机,单片机,proteus,STM32,寄存器,仿真 

    这个源码还自带了标准库中的很多东西,启动文件,核心文件,所以直接编译也是没有问题的。

proteus结合keil-arm编译器构建STM32单片机项目进行仿真,51单片机,单片机,proteus,STM32,寄存器,仿真 

     这里虽然有了标准库中的很多内容,但是一些初始化的功能代码并不在这里,所以需要通过操作寄存器来实现点灯操作。

    如下所示,是一个简单的 通过操作寄存器来让GPIOA的GPIO_Pin_5端口作为电平输出口,并开启时钟使能的代码。

#include <stm32f103x6.h>
#include <stm32f1xx.h> 
 
#define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) 
#define MEM_ADDR(addr)  *((volatile unsigned long  *)(addr)) 
#define BIT_ADDR(addr, bitnum)   MEM_ADDR(BITBAND(addr, bitnum)) 
 
#define GPIOA_ODR_Addr    (GPIOA_BASE+12) //0x4001080C 
#define PAout(n)   BIT_ADDR(GPIOA_ODR_Addr,n)
 
#define LED0 PAout(5) // PA5 
 
void Delay_nms(unsigned int time)
{    
   unsigned int i=0;  
   while(time--)
   {
      i=12000;  
      while(i--) ;    
   }
}
 
void LED_Init(void)
{   
   RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; // clock enable
   GPIOA->CRL &= 0XFF0FFFFF;  //PA5
   GPIOA->CRL |= 0X00300000;  //PA5 
   GPIOA->ODR |= 1<<5;        //PA5 
}

int main (void)
{    
   LED_Init(); 
   while (1)
   {
      LED0 = 0;
      Delay_nms(50); 
      LED0 = 1;
      Delay_nms(50); 
   }
}

    项目源码构建成功:

proteus结合keil-arm编译器构建STM32单片机项目进行仿真,51单片机,单片机,proteus,STM32,寄存器,仿真

    接着,我们直接在原理图Schematic这里添加发光二极管和电阻并连线就可以开始仿真了。

proteus结合keil-arm编译器构建STM32单片机项目进行仿真,51单片机,单片机,proteus,STM32,寄存器,仿真 

    前面源码构建好了,这里原理图简单添加了LED就可以进行仿真了。效果如下所示:

proteus结合keil-arm编译器构建STM32单片机项目进行仿真,51单片机,单片机,proteus,STM32,寄存器,仿真 

    这种构建仿真,原理图加源码的方式很适合没有单片机,而且不用在Keil和Proteus之间来回切换的情况,但是它的源码是在临时文件夹中,如下所示:

proteus结合keil-arm编译器构建STM32单片机项目进行仿真,51单片机,单片机,proteus,STM32,寄存器,仿真 

    这种方式对于复杂项目而言,可能也有一些弊端。 文章来源地址https://www.toymoban.com/news/detail-648195.html

到了这里,关于proteus结合keil-arm编译器构建STM32单片机项目进行仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32 Keil5报错-*** Target ‘XXX‘ uses ARM-Compiler ‘Default Compiler Version 5‘ which -安装编译器解决

    安装的keil 版本是V5.38, 显示缺少编译器 Compiler Version 5\\\' *** Target \\\'MUSICPLAYER\\\' uses ARM-Compiler \\\'Default Compiler Version 5\\\' which is not available. 下载编译器:  Arm Compiler 5.06 update 7 (build 960)  下载地址:https://developer.arm.com/downloads/view/ACOMP5 Legacy Arm Compiler 5, 4.1, and RVCT (ACOMP5) https://developer.ar

    2024年04月11日
    浏览(19)
  • 物联网|ARM|Keil同时安装Keil的C51、C251和MDK|增加V5编译器|物联网开发系列课程之零基础玩转Cortex-M系列CPU-学习笔记(1)

    1.物联网的定义 利用局部网络或互联网等通信技术把传感器、控制器、机器、人员和物等通过新的方式联在一起,形成人与物、物与物相联,实现信息化、远程管理控制和智能化的网络。 2.物联网的组成 3.物联网应用举例智能家居 1物联网的数据源头 2物联的局域网络源头 1

    2024年02月05日
    浏览(29)
  • KEIL5 各个版本编译器的下载

    关于下载了新版本KEIL之后,编译器版本不对导致以前的程序不能运行,有许多问题需要解决,其中编译器版本问题是个不能避免的问题; 我之前用的是V5.06 update 7(build 906)版的编译器,后来升级MDK537之后,编译器版本就变成V6.16了,因为我是卸载删除之后再升级的MDK,所以之

    2024年02月02日
    浏览(24)
  • Keil MDK安装armcc V5编译器

            不知道从什么时候开始,Keil MDK默认不支持V5的编译器了,里面默认只有V6的编译器,设置界面跟V5有很大的差异不太熟悉。最可怕的是,之前使用V5编译的工程,换成V6编译器后居然报错...虽然修改一下应该也可以正常编译,但,人总是习惯自己熟悉的东西。所以,

    2024年04月27日
    浏览(11)
  • ARM嵌入式编译器编译优化选项 -O

    Arm嵌入式编译器可以执行一些优化来减少代码量并提高应用程序的性能。不同的优化级别有不同的优化目标,不仅如此,针对某个目标进行优化会对其他目标产生影响。比如想减小生成的代码量,势必会影响到该代码的性能。所以优化级别总是这些不同目标(代码量,程序性

    2024年02月16日
    浏览(13)
  • KEIL5MDK安装及V5编译器的安装

    目前keil官网最新版本的安装包都是默认安装V6编译器,不再自动安装V5编译器,而V5与V6编译器在编译的时候有很多代码不兼容,导致工程编译失败,所以我们使用新版keil5的时候,要用V5编译器就要自己安装V5编译器。 教程中所需的安装包(keil、破解工具、V5编译器)百度网盘

    2024年02月11日
    浏览(22)
  • arm系列交叉编译器各版本区别

    交叉编译器的命名规则:arch [-vendor] [-os] [-(gnu)eabi] [-language] arch - 体系架构, 如arm(ARM-32bit)、aarch64(ARM-64bit)、x86等; vendor -工具链提供商,经常省略,或用 none 替代; os - 目标操作系统, 如linux,没针对具体 os 则 用 none 替代。同时没有 vendor 和os 使用一个 none 替代。

    2024年02月01日
    浏览(22)
  • ARM编译器5.06下载安装

    进入官方网站ARM Complier v5.06官网下载页面 进入后的界面为 往下翻,找到如图位置的5.06 for windows的文件,点击下载,下载时需要登录账号 先解压下载的压缩文件,在installer文件夹里面有一个 setup.exe 文件,双击它, 同意协议,在安装位置选择 keil 安装位置的 ARM 文件夹下,在

    2024年02月22日
    浏览(19)
  • KEIL MDK5.37版本自行添加AC5(ARMCC)编译器

    从MDK5.37开始,AC5(ARMCC)编译器不再默认安装,需要独立安装。 下面是总结的安装步骤: 下载AC5(ARMCC)编译器: 1.官方页面(可能下载不成功) Legacy Arm Compilers – Arm Developer https://developer.arm.com/downloads/-/legacy-compilers 2.安富莱论坛(推荐,比较容易下载) 【安富莱】MDK5.29,5.30,

    2024年02月02日
    浏览(24)
  • QT配置arm-linux-g++交叉编译器

    ubuntu16.4版本虚拟机 qt5.12.9版本 ,qt-everywhere-src-5.12.9(版本要一致,没试过版本不同是否可行) (qt5.15.2 qt5.14.2都装了下,按照以下流程都是完全没错误) arm-linux-g++4.8.3版本 由于最近接手公司离职员工的代码,通常我个人都是直接写Makefile来完成,对方用的Qt配合交叉编译器

    2024年01月19日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包