2020-11-09

Proteus仿真运行stm32流水灯实验

MDK创建一个工程文件

新建一个工程文件,配置并引入固件库
在这里插入图片描述
在 USER 文件夹下新建一个 bsp_led.c 文件

// bsp: board support package 板级支持包
#include "bsp_led.h"

//微秒级的延时
void delay_us(uint32_t delay_us)
{    
  volatile unsigned int num;
  volatile unsigned int t;
 
  
  for (num = 0; num < delay_us; num++)
  {
    t = 11;
    while (t != 0)
    {
      t--;
    }
  }
}

//毫秒级的延时
void delay_ms(uint16_t delay_ms)
{    
  volatile unsigned int num;
  for (num = 0; num < delay_ms; num++)
  {
    delay_us(1000);
  }
}

void LED_GPIO_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStruct; //定义GPIO_InitTypeDef结构体
	
	//开启时钟
	//RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	//配置成员,变为输出模式
	/*绿灯*/
	GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN; //配置位(I/O口)
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //配置输出速度
	//GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 参数一:端口,参数二:GPIO_InitTypeDef结构体指针
	GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct); //初始化GPIO
	
	/*红灯*/
	GPIO_InitStruct.GPIO_Pin = LED_R_GPIO_PIN;
	GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
	
	/*蓝灯*/
	GPIO_InitStruct.GPIO_Pin = LED_B_GPIO_PIN;
	GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
	
	while(1){
		//点亮绿LED
		GPIO_ResetBits(LED_GPIO_PORT, LED_G_GPIO_PIN);
		delay_ms(10);
		//熄灭绿LED
		GPIO_SetBits(LED_GPIO_PORT, LED_G_GPIO_PIN);
		delay_ms(10);
		GPIO_ResetBits(LED_GPIO_PORT, LED_R_GPIO_PIN);
		delay_ms(10);
		GPIO_SetBits(LED_GPIO_PORT, LED_R_GPIO_PIN);
		delay_ms(10);
		GPIO_ResetBits(LED_GPIO_PORT, LED_B_GPIO_PIN);
		delay_ms(10);
		GPIO_SetBits(LED_GPIO_PORT, LED_B_GPIO_PIN);
		delay_ms(10);
	}
}

同样在 USER 文件夹中新建一个 main.c 文件

#include "stm32f10x.h"
#include "bsp_led.h"

int main(void)
{
	// 程序来到 main 函数之前,启动文件:statup_stm32f10x_hd.s 已经调用
	// SystemInit()函数把系统时钟初始化成 72MHZ
	// SystemInit()在 system_stm32f10x.c 中定义
	// 如果用户想修改系统时钟,可自行编写程序修改
	LED_GPIO_Config();
}

点击 Output,勾选 Create HEX File,然后点击 OK
在这里插入图片描述

用Proteus新建一个工程文件

引入如下器件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值