1-STM32F1-LED


STM32F103 LED实验

STM32F1的IO口每组最多有16个IO,每个IO有8种输入输出方式,分别是
1、输入浮空
2、 输入上拉
3、 输入下拉
4、 模拟输入
5、 开漏输出
6、 推挽输出
7、 推挽式复用功能
8、 开漏复用功能 
在使用IO前一定要打开相应的IO时钟,本实验是利用IO口控制LED灯闪烁,LED灯接在PB5上,用的是原子的精英板。
IO操作步骤
1,打开IO口时钟
2,选择引脚
3,选择输入输出方式
4,选择IO翻转速度
5,把IO初始化为高电平或者低电平
6,OK

本实验是用原子哥的现成工程来做的,系统时钟什么的已经提前配置好了,代码如下;
#include "sys.h"
#include "delay.h"
/************************************************************
功能;LED闪烁,间隔为100ms

其中LED接在PB5上,低电平有效

IO口初始化步骤
1,打开IO口时钟
2,初始化IO口,设置IO类型,选引脚,设置IO翻转速度
3,初始化IO口为一个状态
****************************************************************/

void init_led()
{
	GPIO_InitTypeDef GPIO_InitStruct;//GPIO结构体
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE,ENABLE);//打开GPIOB和GPIOE时钟

	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;//PB5
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz;//翻转速度=10MHZ
	GPIO_Init(GPIOB, &GPIO_InitStruct);
	GPIO_WriteBit(GPIOB,GPIO_Pin_5,1);//初始化输出1吧
}

 int main(void)
 {	
	delay_init();	//延时函数初始化
	init_led();	 //LED初始化
	while(1)
	{
		GPIO_WriteBit(GPIOB,GPIO_Pin_5,1);//PB5输出1
		delay_ms(100);	//这个函数是引用原子哥写的延时函数,自己用软件延时也可以
		
		GPIO_WriteBit(GPIOB,GPIO_Pin_5,0);//PB5输出0
		delay_ms(100);
	}
 }
 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值