STM32--跑马灯实验

硬件连接

xvxccfff在这里插入图片描述

固件库介绍

在这里插入图片描述
在这里插入图片描述

代码实现

#include "stm32f10x.h"
#define RCC_LED RCC_APB2Periph_GPIOB
#define LED_PORT GPIOB
#define LED_PIN GPIO_Pin_1
#define RCC_KEY RCC_APB2Periph_GPIOB
#define KEY_PORT GPIOB
#define KEY_PIN GPIO_Pin_2

void delay(int number)
{
	for(int i = 0 ; i < number ; i++)
	{
		for(int j = 0 ; j <10000 ; j++) ;
	}
}

void led_init()
{
	GPIO_InitTypeDef GPIO_InitStructure; 
	RCC_APB2PeriphClockCmd(RCC_LED, ENABLE);
	GPIO_InitStructure.GPIO_Pin = LED_PIN; 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
	GPIO_Init(LED_PORT, &GPIO_InitStructure);
	GPIO_SetBits(LED_PORT, LED_PIN); //关灯,即首先确保灯的状态是关闭状态
}	

void key_init()
{
	GPIO_InitTypeDef GPIO_InitStructure; 
	RCC_APB2PeriphClockCmd(RCC_KEY, ENABLE);
	GPIO_InitStructure.GPIO_Pin = KEY_PIN; 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉输入
	GPIO_Init(KEY_PORT, &GPIO_InitStructure);
}
	
int main(void)
{
	u8 ReadValue;
	led_init();
	key_init();
	while(1)
	{
		ReadValue = GPIO_ReadInputDataBit(KEY_PORT, KEY_PIN); //读取按键的引脚
		if(ReadValue==Bit_RESET)
		{
			GPIO_ResetBits(LED_PORT, LED_PIN); //开灯
			delay(50);
		}
		else
		{
			GPIO_SetBits(LED_PORT, LED_PIN); //关灯
			delay(50);
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值