Proteus仿真STM32的实战步骤

工程实践老师喊我们进行一个proteus仿真做STM32的测试,proteus之前笔者有用过,都用来做51的仿真,32的仿真确实没有尝试过,于是今天把我实战32仿真的整个操作流程做一个记录。

1、首先按照AD那边的原理图搭建好基本电路,包括晶振振荡电路等外围。
电路

2、正当准备运行上电的时候,提示没VSS和VDD未连接
在这里插入图片描述

3、通过查阅资料可知
选择 Design -> Configure Power Rails …添加到VCC/VDD里头既可解决
设计->配置供电网

在这里插入图片描述
4、打算接入一个LED灯,程序设置PB1拉低,但是发现PB1始终为灰色的在这里插入图片描述

5、查询资料得知需要在芯片内部设置8M的晶振频率在这里插入图片描述

6、这个时候再上电就会发现PB1的引脚被MCU拉低了在这里插入图片描述
7、成功点亮LED
在这里插入图片描述

8、proteus大bug 运行着运行着 按键卡了
在这里插入图片描述
9、把右边的晶振振荡电路删除后发现按键不再卡死了在这里插入图片描述

10、写了8位流水灯 效果还算可以但是偶尔还是会出现VSM调试器弹出的问题
在这里插入图片描述

11、如图,不知如何解决,存疑
在这里插入图片描述

12、代码部分



#include "stm32f10x.h"
#include "bsp_led.h"  
#include "bsp_key.h" 
unsigned char Trg;
unsigned char Cont;
void KeyRead( void )
{
    unsigned char ReadData = (GPIO_ReadInputData(GPIOA))^0xff; // 1
    Trg = ReadData & (ReadData ^ Cont); // 2
    Cont = ReadData; // 3
}
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++);
	
}
/**
  * @brief  主函数
  * @param  无
  * @retval 无
  */ 
int main(void)
{	
	int i;
	
	/* LED端口初始化 */
	LED_GPIO_Config();
	LED1_ON;
	LED3_OFF;
	
	/* 按键端口初始化 */
	Key_GPIO_Config();
	
	/* 轮询按键状态,若按键按下则反转LED */
	while(1)                            
	{	  
	
//		GPIO_SetBits(GPIOB, GPIO_Pin_All);
//		delay(5000);
//		GPIO_ResetBits(GPIOB, GPIO_Pin_All);
//		delay(5000);
		
	  for(i=0;i<8;i++)
	  {
		delay_ms(99000);
		GPIOB->BRR=(1<<i);  
		  
		delay_ms(99000);
		GPIOB->BSRR=(1<<i);
	  }
	  for(i=0;i<8;i++)
	  {
		  delay_ms(99000);
		  GPIOB->BRR=0x000000ff;
		  
		  delay_ms(99000);
		  GPIOB->BSRR=0x000000ff;
		  
	  }
//		if( Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN) == KEY_ON  )
//		{
//			/*LED1反转*/
//			//LED3_TOGGLE;
//			LED3_ON;
//		} 

	
	}
}
/*********************************************END OF FILE**********************/

本打算加工按键改变LED灯的状态的,但是按键没效果,怀疑是仿真问题,存疑!

总结:proteus在51的仿真还算可以,但是在32的仿真感觉很多都不适配,32的仿真方面在网络上的资料也普遍反应bug众多,如32的定时器在仿真上边的使用堪称最难的仿真

全球首发,全网最难,全世界第一个Proteus仿真stm32f103之实现定时器TIM3中断

我的第一个个人技术博客2020.11.22开始入坑写CSDN博客
由于还不会MarkDown技能
所以博客的阅读效果稍显干燥

																			Alex
																			2020.11.22
  • 45
    点赞
  • 288
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
在没有开发板的基础上,可以使用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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值