## STM32初始化的函数(江科大)

以下内容都是来自这个大佬对江科大做的的笔记,我只是整理一下初始化的程序方便整理思路

一、GPIO初始化

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIO x ,ENABLE/DISABLE);	//开启时钟
	
	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;		//选择输出频率
	GPIO_Init(GPIOA,&GPIO_InitStructure);					//GPIO配置初始化

GPIO引脚归为外设类,所示在APB2上。
有八种输出模式

浮空输入 可读取引脚电平,若引脚悬空,则电平不确定
上拉输入 可读取引脚电平,内部连接上拉电阻,悬空时默认高电平
下拉输入 可读取引脚电平,内部连接下拉电阻,悬空时默认低电平
模拟输入 GPIO无效,引脚直接接入内部ADC
开漏输出 可输出引脚电平,高电平为高阻态,低电平接VSS
推挽输出 可输出引脚电平,高电平接VDD,低电平接VSS
复用开漏输出 由片上外设控制,高电平为高阻态,低电平接VSS
复用推挽输出 由片上外设控制,高电平接VDD,低电平接VSS

蜂鸣器和LED灯只需要更改引脚就可以

二、中断配置

这个大佬的笔记记得非常好,我这个就是简化了一下自己看的。
在这里插入图片描述
在这里插入图片描述

第一步,时钟配置

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //开启RCC时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);	//开启AFIO时钟
	//EXTI和NVIC两个外设的时钟是一直开的 ,NVIC内核外设都是不需要开启时钟

第二步,配置GPIO

	GPIO_initstruct.GPIO_Mode = GPIO_Mode_IPU;
	GPIO_initstruct.GPIO_Pin = GPIO_Pin_14;
	GPIO_initstruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_initstruct);

第三步,配置AFIO外设中断引脚选择,AFIO的库函数是和GPIO在一个文件里

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource14);

每个GPIO都有16个引脚,选择一个进入中断。
AFIO主要是俩个功能,复用功能引脚重映射,中断引脚选择。

第四步,配置EXTI,

EXTI_InitTypeDef EXTI_InitStructure;
EXTI_InitStructure.EXTI_Line = EXTI_Line14;						//选择中断公道
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;				//选择中断模式
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;			//选择触发方式
EXTI_InitStructure.EXTI_LineCmd = ENABLE;						//使能开关
EXTI_Init(&EXTI_InitStructure
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值