回答

收藏

22..STM32F469I---入门GPIO操作

STMCU STMCU 2672 人阅读 | 0 人回复 | 2018-01-12

【STM32F469I试用】入门(二):GPIO操作【转】

一、开发环境
1、板子:STM32F469I
2、IDE:Keil 5
3、源码,pack for STM32F4
二、概述
GPIO 是学习单片机时最基础、最简单的一个功能。
对于GPIO无非有四种功能。
1、输出IO
2、输入IO
3、中断IO
4、复用
对于复用功能,在相应的外设部分会再有详细的说明,此帖只是针对前三种进行测试说明。
三、正文
1、pack 中的程序都是只读的,要把它们复制出来,留下一个备份,去掉只读属性。
2、打开工程文件,Projects\STM32469I-Discovery\Examples\GPIO\GPIO_EXTI\MDK-ARM\Project.uvprojx



3、LED与KEY的原理图,可以得到分配的GPIO号
可以看到,LED使用的GPIO分别是G6、D4、D5、K3
按键使用:A0





4、程序
添加延时函数:
        void delay()
        {
                int i;
                for(i=0;i<0xffffff;i++);
        }

添加初始化 LED3
BSP_LED_Init(LED3);

在main函数中闪烁LED3
                delay();
                HAL_GPIO_WritePin(LED3_GPIO_PORT, LED3_PIN , GPIO_PIN_SET);
                delay();
                HAL_GPIO_WritePin(LED3_GPIO_PORT, LED3_PIN , GPIO_PIN_RESET);

在此之前,还要对硬件层进行初始化。
  HAL_Init();

对时钟初始化。
  SystemClock_Config();

对按键PA0,设置为中断功能。
static void EXTI0_IRQHandler_Config(void)
{
  GPIO_InitTypeDef   GPIO_InitStructure;

  /* Enable GPIOA clock */
  __HAL_RCC_GPIOA_CLK_ENABLE();

  /* Configure PA.00 pin as input floating */
  GPIO_InitStructure.Mode = GPIO_MODE_IT_RISING;
  GPIO_InitStructure.Pull = GPIO_NOPULL;
  GPIO_InitStructure.Pin = GPIO_PIN_0;
  HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);

  /* Enable and set EXTI line 0 Interrupt to the lowest priority */
  HAL_NVIC_SetPriority(EXTI0_IRQn, 2, 0);
  HAL_NVIC_EnableIRQ(EXTI0_IRQn);
}

5、结果
LED3(红色闪烁)
按键后,LED1(绿色亮),再按后,灭。

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条