STM32-F1学习系列(4):管脚

346 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

介绍

参考资料

BOOT引脚

启动BOOT0BOOT1
主存储器00
信息块3.3V0

GPIO引脚

GPIO可以配置为几种模式,通过寄存器配置

图片.png 图片来自普中教程

  • 输入模式
  • 输出模式
    • 推挽模式
    • 开漏模式:只有N-mos管工作,需要外接上拉电阻
  • 复用功能
  • 模拟输入输出:双 MOS 管结构被关闭,施密特触发器停用,上/下拉 也被禁止

STM32 中凡是使用到外设功能,都要使能对应的外设时钟,对应为RCC,RCC 时钟外设是挂接AHB总线上。

图片.png

void delay(u32 i)
{
	while(i--);
}
int main()
{
	RCC_APB2ENR |= 1<<4;//使PC时钟使能打开
	GPIOC_CRL &= ~( 0x0F<< (4*0));//置低4位为0
	GPIOC_CRL |= (3<<4*0);//置低2位为1
	GPIOC_BSRR=(1<<(16+0));//操纵设置寄存器
	while(1)
	{
		GPIOC_BSRR=(1<<(16+0));
		delay(0xFFFFF);
		GPIOC_BSRR=(1<<(0));
		delay(0xFFFFF);
	}
}

下面是一个走马灯程序

int main()
{
	int i;
	RCC_APB2ENR |= 1<<4;
	for(i=0;i<8;i++){
		GPIOC_BSRR=(1<<(i));
		GPIOC_CRL &= ~( 0x0F<< (4*i));
		GPIOC_CRL |= (3<<4*i);
	}
	while(1)
	{
		for(i=0;i<8;i++){
			GPIOC_BSRR=(1<<(16+i));
			delay(0xFFFFF);
			GPIOC_BSRR=(1<<(i));
		}
	}
}