[其他ST产品] Proteus下的stm32仿真

[复制链接]
858|21
 楼主| l63t89 发表于 2022-12-31 20:13 | 显示全部楼层 |阅读模式
创建工程

1.打开proteus,新建工程
7484963b0276cd458a.png

 楼主| l63t89 发表于 2022-12-31 20:16 | 显示全部楼层
创建原理图中选DEFULT
356263b0280e0b501.png
 楼主| l63t89 发表于 2022-12-31 20:17 | 显示全部楼层
不创建PCB布板设计
6959563b0284428994.png
 楼主| l63t89 发表于 2022-12-31 20:17 | 显示全部楼层
创建固件项目,配置如图、
3539363b02864bdd93.png
 楼主| l63t89 发表于 2022-12-31 20:18 | 显示全部楼层
工程创建后效果如图

631163b02885c2c18.png
 楼主| l63t89 发表于 2022-12-31 20:19 | 显示全部楼层
配置实验所需原件

1.点击操作界面右侧的P,添加元器件。在搜索栏LED-YELLOW,点击确定
5226763b028ab6739d.png
 楼主| l63t89 发表于 2022-12-31 20:19 | 显示全部楼层
在搜索栏中输入res,找到res器件
3424963b028dba55c8.png
 楼主| l63t89 发表于 2022-12-31 20:20 | 显示全部楼层
添加完毕后器件栏如图
8629663b028f7298f6.png
 楼主| l63t89 发表于 2022-12-31 20:20 | 显示全部楼层
将器件如图进行摆放连线
8810463b0292a1ff85.png
 楼主| l63t89 发表于 2022-12-31 20:22 | 显示全部楼层
双击电阻,将阻值设定为50
6251763b029780721d.png
 楼主| l63t89 发表于 2022-12-31 20:25 | 显示全部楼层
在Keil中生成HEX文件

1.在Keil新建main.c,并输入代码
646763b02a35e08d1.png
 楼主| l63t89 发表于 2022-12-31 20:26 | 显示全部楼层
7696663b02a7ccfd38.png
  1. #include "stm32f10x.h"

  2. GPIO_InitTypeDef GPIO_InitStructure;
  3. void delay_ms(uint32_t ms)
  4. {
  5.         uint32_t i_cnt,j_cnt;
  6.         for(i_cnt=0;i_cnt<3000;i_cnt++);
  7.         for(j_cnt=0;j_cnt<ms;j_cnt++);
  8.        
  9. }
  10. uint32_t i;
  11. int main(void)
  12. {
  13.   
  14.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

  15.         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;
  16.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  17.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  18.         GPIO_Init(GPIOC, &GPIO_InitStructure);

  19.         GPIOC->BSRR=0xff;
  20.         while (1)
  21.         {
  22.           for(i=0;i<8;i++)
  23.           {
  24.                 delay_ms(99000);
  25.                 GPIOC->BRR=(1<<i);  
  26.                   
  27.                 delay_ms(99000);
  28.                 GPIOC->BSRR=(1<<i);
  29.           }
  30.           for(i=0;i<8;i++)
  31.           {
  32.                   delay_ms(99000);
  33.                   GPIOC->BRR=0x000000ff;
  34.                   
  35.                   delay_ms(99000);
  36.                   GPIOC->BSRR=0x000000ff;
  37.                   
  38.           }

  39.         }
  40. }
 楼主| l63t89 发表于 2022-12-31 20:28 | 显示全部楼层
点击Option for Target,勾选Create HEX file
3854863b02aefc4b99.png
 楼主| l63t89 发表于 2022-12-31 20:29 | 显示全部楼层
 楼主| l63t89 发表于 2022-12-31 20:30 | 显示全部楼层
编译程序,生成HEX文件 2944563b02b63b4d90.png
 楼主| l63t89 发表于 2022-12-31 20:31 | 显示全部楼层
配置stm32

1.回到proteus,双击stm32,Program File 选择刚才生成的hex文件,并配置Crystal Frequency改成8M
 楼主| l63t89 发表于 2022-12-31 20:32 | 显示全部楼层
 楼主| l63t89 发表于 2022-12-31 20:33 | 显示全部楼层
开始仿真,第一个灯亮
8457463b02c070085e.png
 楼主| l63t89 发表于 2022-12-31 20:35 | 显示全部楼层
第二个灯亮 6748563b02c34cc93d.png
 楼主| l63t89 发表于 2022-12-31 20:35 | 显示全部楼层
第八个灯亮 9780663b02c8867ebd.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1077

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部