用proteus实现STM32仿真

本文介绍如何使用Proteus 8.9创建STM32工程并进行LED灯控制的编程与仿真。通过Keli进行编程,实现LED灯的闪烁效果。详细步骤包括创建工程、配置电源、绘制原理图、编写代码及仿真验证。

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

1、创建工程绘制原理图

1、打开proteus8.9,点击左上角的“文件”->“新建工程”
在这里插入图片描述

然后输入工程名和路径, 点击下一步:

在这里插入图片描述

然后选择“从选中的模板中创建原理图”(DEFAULT),点击下一步

在这里插入图片描述
然后选择“不创建PCB布板设计”,点击下一步,

然后选择“关键固件项目”,系列, Controller的选择如图所示:

然后点击下一步,点击完成就建好工程了。
在原理图绘制上就出现了STM32器件
在这里插入图片描述
2、首先为STM32器件配置好所需的电源。
然后在元器件库中找到黄色的LED灯和电阻,连接好电路如图所示:
(电阻的阻值不宜过大,过大使通过的电流小而不发光。)
在这里插入图片描述

2、使用Keli进行编程

首先需要下载外设库:这里给出GitHub的网址,官网的话需要注册;
https://github.com/2414466154/seven
然后新建一个工程:(此工程的路径要与下载外设库的路径一致)
在这里插入图片描述
然后选择对应的芯片,在上面用的是STM32103R6,然后继续添加与外设库对应的组:
右击“Target1”,然后添加对应的组,并点击右下角添加文件把下载的外设库文件添加到对应的组中,注意,在添加文件的时候要把文件类型改为“AllFile”,不要只添加.c文件,否则外设库添加不全。
在这里插入图片描述
在这里插入图片描述
然后点击“Option for…”进行一些修改:
选择“c\c++”,在Define中填入如下内容
在这里插入图片描述
然后继续点击下方的IncludePath的三个点,手动输入:
在这里插入图片描述
最后在“Output”栏中选中要生成的HEX文件,点击OK完成。
在这里插入图片描述
点击新建文件,输入以下代码:

#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;
void delay_ms(uint32_t ms)
{
	uint32_t i_cnt,j_cnt;
	for(i_cnt=0;i_cnt<3000;i_cnt++);
	for(j_cnt=0;j_cnt<ms;j_cnt++);
	
}
uint32_t i;
int main(void)
{
  
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOC, &GPIO_InitStructure);

	GPIOC->BSRR=0xff;
	while (1)
	{
	  for(i=0;i<8;i++)
	  {
		delay_ms(99000);
		GPIOC->BRR=(1<<i);  
		  
		delay_ms(99000);
		GPIOC->BSRR=(1<<i);
	  }
	  for(i=0;i<8;i++)
	  {
		  delay_ms(99000);
		  GPIOC->BRR=0x000000ff;
		  
		  delay_ms(99000);
		  GPIOC->BSRR=0x000000ff;
		  
	  }

	}
}

保存后进行编译得到如下的结果:
在这里插入图片描述
表示没有错误并且生成了HEX文件。

3、仿真

接下来把生成的HEX文件添加到STM32103R6中,并且把频率改为8M
如图所示:
在这里插入图片描述
然后点击确认并进行仿真:
结果为:每个灯单独轮流亮一次,然后所有灯一起亮。
在这里插入图片描述
在这里插入图片描述

总结:

本次使用两个软件制作的流程与之前的不是很一样,会有外设库的涉及,虽然我不知道为什么要下载外设库的作用,然后在一些外设库的引入的方面也是很棘手,虽然是按照教程来的, 但是过程基本上是不知道的,这也使得自己对STM32一些的使用有了进一步的设计。

在没有开发板的基础上,可以使用Proteus进行STM32仿真设计。虽然目前没有很好地指导直接在Proteus中进行C编程来仿真STM32设计的帖子供参考,但是可以借助其他工具如Keil MDK或STM32CubeMX来编译生成HEX文件,然后将HEX文件导入Proteus进行仿真。这样可以避免反复切换和修改程序的麻烦,提高调试效率。具体步骤如下: 1. 创建工程并配置实验所需原件。 2. 在Keil 5中选择"Option for Target",勾选"Create HEX file",生成HEX文件。 3. 在Proteus中配置芯片,将生成的HEX文件导入。 4. 进行实验并观察仿真结果。 需要注意的是,在原理图绘制中选择STM32器件,并为其配置所需的电源。同时,连接所需的元器件如LED灯和电阻,确保电路连接正确。在使用Keil进行编程时,可以根据需要进行程序的修改和调试。这样,就可以在Proteus中进行STM32仿真设计了。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [Proteus内部编程仿真STM32(附程序)](https://blog.csdn.net/tj_nonstoper/article/details/124078197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Proteus仿真运行stm32程序](https://blog.csdn.net/klklklbb/article/details/109527751)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [用proteus实现STM32仿真](https://blog.csdn.net/qq_45907958/article/details/109563523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值