一、操纵STM32的GPIO口步骤

1、使用RCC开启GPIO的时钟;

2、使用GPIO_Init函数初始化外设和GPIO口:包含定义外设、设置输出模式、引脚、频率;

3、使用GPIO相关的输入或者输出函数控制GPIO口。

二、初始化外设案例

利用A0口点亮一盏LED灯。

#include "stm32f10x.h"                  // Device header
#include "Delay.h"

int main(void)//操纵stm32的GPIO总共需要三个步骤
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//1、使用RCC开启GPIO的时钟(GPOA是因为灯装在了A口)
	
	GPIO_InitTypeDef aaa;
	aaa.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出(高低电平都驱动能力强);Out_OD开漏输出,低电平有驱动能力
	aaa.GPIO_Pin = GPIO_Pin_2;//A2号引脚
	aaa.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOA,&aaa);//2、使用GPIO_Init初始化外设/GPIO
	
	//GPIO_ResetBits(GPIOA,GPIO_Pin_2); //3、使用输出或者输入函数控制GPIO口(此处设置输出口为低电平,点亮)
	//GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_RESET);//(写入低电平,一直输出)
	while(1)
	{
	   GPIO_ResetBits(GPIOA,GPIO_Pin_2);//响
	   Delay_ms(300);
	   GPIO_SetBits(GPIOA,GPIO_Pin_2);//不响
	   Delay_ms(300);
	   GPIO_ResetBits(GPIOA,GPIO_Pin_2);//响
	   Delay_ms(300);
	   GPIO_SetBits(GPIOA,GPIO_Pin_2);//不响
	   Delay_ms(1000);
	}
}

三、注意和易错事项

1、如果单片机安装到面包板过程中较为费劲,可以使用杜邦线公线头捅进去进行阔开。

2、LED灯如果引脚没有剪断的话,短引脚为负,极长引脚为正极,如果不确定,可以透过灯泡看里面二极管,较大的一侧为负极,较小的一侧为正极。

3、连接好硬件电路之后,一定要反复确认面包网上锁插对应元件孔位是否正确。

4、确认软件程序中的GPIO口定义一致,切不可出现,前面使用GPIOA,后面使用GPIOB的情况。

四、标准工程模板

由于STM32建立工程较为繁琐,为了方便我提供免费工程模板供大家使用。

下载路径:https://download.csdn.net/download/m0_73164187/91950314?spm=1001.2014.3001.5501

在使用时,只需要把我的工程模板复制到对应的工程存放路径,完成魔术棒和彩色箱子配置后,在user文件夹下的main函数进行更改操作,建立工程即可。

同为初学者,欢迎大家交流学习!!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐