STM32 第一天学习

目标 1 , GPIO的使用

目标2 , RCC时钟总线

目标3 , 上下拉输入,浮空输入,高阻输入,模拟输入,推挽输出,开漏输出 的意思

 

1,GPIO

           1,开启RCC时钟总线

                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

                RCC_APB2PeriphClockCmd(启用对应的GPIO端口时钟,使能还是不使能);

                GPIOA 在RCC时钟总线APB2上

        2,初始化GPIO结构体

                       GPIO_InitTypeDef  GPIO_Initstructure;

                       GPIO_InitTypeDef  用到的结构体类型

                      GPIO_Initstructure 结构体变量名

                结构体需要配置:

               GPIO_Mode = 模式;

               GPIO_Pin = 引脚号;

               GPIO_Speed = 速度;

                重点 GPIO的模式

                 推挽输出 : 有驱动电流的信号

                开漏输出 : 没有很强的驱动电流,单纯的高低电平

                上下拉输入 : 就是静态时保持默认状态需要高电平就上拉,需要低电平就下拉

                 浮空输入 : 就是没有加上下拉电阻,可能一高一下低不稳定,一般用于一些信号比较                                         快又弱的一般不用

                  模拟输入:用于ADC,数字引脚只有1和0,模拟的话可以读出值,高阻,没有电流和电压

     3,配置GPIO初始状态    

                GPIO_Init(GPIOA,&GPIO_Initstructure);

                 GPIO初始化(GPIOA,初始化那个结构体的地址);

      需要用到的一些函数

        GPIO_SetBits(GPIOA,GPIO_Pin_2);
        Delay_ms(200);
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);
        Delay_ms(200);

        GPIO_SetBits(引脚是GPIOA还GPIOB,那个号); //配置为高电平

        GPIO_ResetBits(同上);//重置引脚,默认为低电平

完整代码

#include "stm32f10x.h"   // Device header
#include "Delay.h"             // Component selection
int main(void)
{
    GPIO_InitTypeDef GPIO_Initstructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    
    GPIO_Initstructure.GPIO_Mode =    GPIO_Mode_Out_PP;
    GPIO_Initstructure.GPIO_Pin =    GPIO_Pin_2;
    GPIO_Initstructure.GPIO_Speed =    GPIO_Speed_2MHz;
    
    GPIO_Init(GPIOA,&GPIO_Initstructure);
    
    
    while(1)
    {
        GPIO_SetBits(GPIOA,GPIO_Pin_2);
        Delay_ms(200);
        GPIO_ResetBits(GPIOA,GPIO_Pin_2);
        Delay_ms(200);
    }
}
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值