Proteus内部编程仿真STM32(附程序)

本文介绍了如何在Proteus环境中直接使用C语言编程仿真STM32设计,避免了借助Keil MDK等工具编译HEX文件的繁琐步骤。通过一个STM32F103T6芯片控制LED灯交替点亮熄灭的实例,详细讲解了时钟初始化、GPIO配置、延时函数以及主函数的实现,提供了完整的代码和仿真结果,证明了这种直接编程仿真的可行性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

   一、背景

                     二、STM32开发简介

                     三、STM32实例简述

                     四、Proteus内部寄存器编程

                        1、时钟函数Clock_Init()

                        2、GPIO函数 LED_Init()

                        3、延时函数 delay_nms()

                        4、主函数main()

                        5、宏定义

                      五、仿真结果图示

                ​​​​​​​      六、完整代码

                ​​​​​​​      七、总结


一、背景

想在没有开发板的基础上形象逼真仿真基于STM32的设计,除了Proteus无出之右了吧,但目前没有很好地指导直接在Proteus中C编程来仿真STM32设计的帖子供参考,绝大部分的帖子还是借助于Keil MDK或者STM32CubeMX之类的工具,编译成HEX文件之后导入Proteus仿真,程序需要修改时,就得来回切换,反复修改程序、编译程序、导入HEX文件,调试起来非常不方便,也没有充分利用Proteus的优势,费时费力,降低调试效率。

二、STM32开发简介

STM32开发可以分别基于HAL库、库函数或寄存器编程来进行,而基于Proteus链接的Keil for ARM编译器生成的代码(如图1),相比HAL和库函数不具有优势,但HAL(硬件抽象层)和库函数也无非是寄存器软件化,使软件编程更方便,可读性更强,但基于寄存器编程也有代码简略,可以清晰了解编程意图的优点,下面我们以寄存器编程为主导举一个例子来介绍一下在Proteus内部C语言编程仿真STM32设计的实际应用。

 图1 Proteus Keil for ARM编译器生成的代码

三、STM32实例简述

选用STM32F103T6芯片,利用PA8/PB2的推挽输出以1秒为周期交替点亮熄灭白色LED灯,系统时钟采用PLL锁相环9倍频8MHz的HSE外部晶振源来获得,电路原理如下图2,Keil for ARM编译器的设置,可以参考Keil for C51的指导设置,详情请参看下面我之前的帖子,链接如下:

Proteus和Keil C51联调仿真完整解析(附程序)_宝玉飞的博客-CSDN博客

图2  STM32F103T6电路原理图

四、Proteus内部寄存器C语言编程

1、时钟函数Clock_Init()

熟悉一个芯片先从时钟开始,这话一点都不假,我们的设置也是先从时钟入手,分别使能内外时钟并等待就绪,APB1二分频,APB2和AHB不分频,PLL对外部时钟HSE先9倍频再赋给系

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值