STM32 创建LED工程,点亮LED

容忍5V电压
在这里插入图片描述
FT = FIve Tolerate 允许5V
寄存器就是特殊的存储器
上拉输入和下拉输入 如果输入啥都不接,IO口输入电平极容易受外部电平干扰,加上拉电阻就是为了保护输入引脚的电平。
为了避免引脚悬空导致输入数据不确定
上拉输入默认为高电平的输入模式
下拉输入默认为低电平的输入模式
STM32的上拉和下拉,都是一种弱上拉或者下拉,因为阻值比较大。
在这里插入图片描述

施密特触发器的作用,就是稳定电压。
IO口三种输出方式,第一种对16位输出数据寄存器写(比较麻烦不能按位写,只能16位一起写,会影响其它位的数据)
第二种位设置/清除寄存器,可以单独对位进行操作,内部电路自动执行,不会影响其它位的数值。
第三种 位带操作,(分配的专有地址)对应的是RAM和寄存器的映射,类似51寄存器的sfr位寻址。
强推挽输出,具有较强的输出能力。
开漏输出 ,IIC通信,兼容一些5V传感器。低电平具有输出能力,高电平不具备。
关闭:在IO口输入模式下生效,IO口由外部电平决定高低。
GPIO8种模式
很多单片机都采用高电平,弱驱动,低电平强驱动的规则,所以一般推荐,使用外部供电接法,
在这里插入图片描述
主程序

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
int main(void)
{
	//打开APB2时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	//定义结构体类型变量
	GPIO_InitTypeDef GPIO_InitStructure; 
	//给结构体成员赋值。
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 ;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	//完成GPIOA的初始化
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	//写0
	//GPIO_SetBits(GPIOA,GPIO_Pin_0);
	
	while(1)
	{
		//使用GPIO库函数写0和1
		GPIO_ResetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(500);
		GPIO_SetBits(GPIOA,GPIO_Pin_0);
		Delay_ms(500);
//		GPIO_WriteBit(GPIOA ,GPIO_Pin_0,Bit_RESET);
//		Delay_ms(500);
//		GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);
//		Delay_ms(500);
		
//		GPIO_WriteBit(GPIOA ,GPIO_Pin_0,(BitAction)0);
//		Delay_ms(500);
//		GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);
//		Delay_ms(500);
		
	}
}

延时库函数

#include "stm32f10x.h"

/**
  * @brief  微秒级延时
  * @param  xus 延时时长,范围:0~233015
  * @retval 无
  */
void Delay_us(uint32_t xus)
{
	SysTick->LOAD = 72 * xus;				//设置定时器重装值
	SysTick->VAL = 0x00;					//清空当前计数值
	SysTick->CTRL = 0x00000005;				//设置时钟源为HCLK,启动定时器
	while(!(SysTick->CTRL & 0x00010000));	//等待计数到0
	SysTick->CTRL = 0x00000004;				//关闭定时器
}

/**
  * @brief  毫秒级延时
  * @param  xms 延时时长,范围:0~4294967295
  * @retval 无
  */
void Delay_ms(uint32_t xms)
{
	while(xms--)
	{
		Delay_us(1000);
	}
}
 
/**
  * @brief  秒级延时
  * @param  xs 延时时长,范围:0~4294967295
  * @retval 无
  */
void Delay_s(uint32_t xs)
{
	while(xs--)
	{
		Delay_ms(1000);
	}
} 

工程目录
在这里插入图片描述
编译下载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯烟火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值