打印
[STM32F4]

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

[复制链接]
1137|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jinyi7016|  楼主 | 2015-12-15 16:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、开发环境
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(绿色亮),再按后,灭。






沙发
jinyi7016|  楼主 | 2015-12-17 17:52 | 只看该作者
结贴了,来人啊。。

使用特权

评论回复
板凳
294479435| | 2015-12-17 18:36 | 只看该作者
楼主搞的很快啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

131

主题

1318

帖子

12

粉丝