STM32基础—用寄存器的方式驱动GPIO

系列文章目录



用寄存器的方式驱动GPIO

一、用标准外设库改写GPIO程序

GPIO(通用输入输出引脚)
1》STM32中GPIO是按组划分   GPIOA........GPIOF
	每组最多16个引脚   GPIOA0........GPIOA15
	
2》八种输入输出模式
	1,输入浮空
		既没有上拉电阻,也没有下拉电阻,输入空闲时,读到的是上一次的状态
	2,输入上拉
		有上拉电阻,输入空闲时,读到的是高电平
	3,输入下拉
		有下拉电阻,输入空闲时,读到的是低电平
	4,模拟输入
		既没有上拉,也没有下拉,不经过施密特触发器
	5,开漏输出
		没有P-mos ,不能输出高电平
	6,推挽式输出
		有P-mos,既能输出高电平,也能输出低电平
3》最大速度-----电平翻转的速度

注意:复用,使用ST公司添加的片上外设通过GPIO引脚与芯片外通讯,需要使用复用功能

二、使用步骤

1.用标准外设库改写GPIO程序

功能:利用STM32控制LED灯的亮和灭

2.寄存器编程步骤:

1、打开GPIOC的时钟
		RCC->APB2ENR    |=1<<4;
2、将GPIOC8配置成推挽输出,输出速度2MHZ
		GPIOC->CRH     &=~0x0f;
		GPIOC->CRH     |=0x02;
3、关闭LED(配置程序)
		GPIOC->ODR     |=(1<<8); 
4、在主程序中打开LED
		void LED_OPEN(void)
		{
			//开灯
			GPIOC->ODR     &=~(1<<8);
		}

3.标准外设库编程步骤:

打开GPIOC的时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

将GPIOC8配置成推挽输出,输出速度2MHZ

GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_7|GPIO_Pin_6;
GPIO_InitStruct.GPIO_Speed      =GPIO_Speed_2MHz;
GPIO_InitStruct.GPIO_Mode       =GPIO_Mode_Out_PP;
GPIO_Init(GPIOC,&GPIO_InitStruct);

关闭LED(配置程序)

GPIO_SetBits(GPIOC, GPIO_Pin_8|GPIO_Pin_7|GPIO_Pin_6);

在主程序中打开LED

GPIO_ResetBits(GPIOC,GPIO_Pin_8|GPIO_Pin_7|GPIO_Pin_6);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值