3.GPIO操作

一.GPIO的输入操作
GPIO输入检测主要分为3步:1.在RCC中开启GPIO的时钟 2.初始化GPIO端口(包括端口速度,模式,引脚)3.调用GPIO的GPIO_ReadInputDataBit(GPIOx,GPIO_Pin)函数,具体如下:
1.开启RCC中GPIO端口时钟
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
参数RCC_APB2Periph为RCC中APB2ENR寄存器对应的GPIO所处的位,NewState为打开(ENABLE)或者关闭(DISABLE)
2.初始化GPIO的引脚
(1)首先要新建一个GPIO_InitTypeDef类型的变量,例如GPIO_InitTypeDef GPIO_InitStructure
(2)然后赋值对应的引脚号,输入输出模式,速率
        GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN;   //确定第几个引脚
        GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING  //确定模式
(3)调用void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)初始化
         第一参数是对应的端口ABCDE。。。,第二个参数是2中的结构体
3.读取GPIO口状态
    GPIO的GPIO_ReadInputDataBit(GPIOx,GPIO_Pin);
二.GPIO的输出操作
GPIO输出控制主要分为3步:1.在RCC中开启GPIO的时钟 2.初始化GPIO端口(包括端口速度,模式,引脚)3.调用GPIO的SET和RESET函数开关,具体如下:
1.开启RCC中GPIO端口时钟
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  if (NewState != DISABLE)
  {
    RCC->APB2ENR |= RCC_APB2Periph;
  }
  else
  {
    RCC->APB2ENR &= ~RCC_APB2Periph;
  }
}
参数RCC_APB2Periph为RCC中APB2ENR寄存器对应的GPIO所处的位,NewState为打开(ENABLE)或者关闭(DISABLE)
2.初始化GPIO的引脚
1.首先要新建一个GPIO_InitTypeDef类型的变量,例如GPIO_InitTypeDef GPIO_InitStructure 
2.然后赋值对应的引脚号,输入输出模式,速率
   GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN;   //确定第几个引脚
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //确定模式
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//确定速率
3.调用函数初始化GPIO
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct
第一参数是对应的端口ABCDE。。。,第二个参数是2中的结构体
3.控制GPIO输出
    GPIO_ResetBits(LED_G_PORT,LED_G_PIN);
    GPIO_SetBits(LED_G_PORT,LED_G_PIN);
第一个参数是端口号,第二个是引脚号
三.烧写程序
1.将编译器里的reset and run勾上
2.将pack前的勾去掉
四.编译器如何擦除程序
    菜单栏Flash-erase
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吴的嵌入式笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值