爱板网论坛

查看: 207|回复: 0

[教程] 22..STM32F469I---入门GPIO操作

[复制链接]

主题

好友

6587

积分

状元

  • TA的每日心情
    郁闷
    11 小时前
  • 签到天数: 595 天

    连续签到: 16 天

    [LV.9]以坛为家II

    发表于 2018-1-12 15:40:45 |显示全部楼层
    【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

    1.jpg


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

    2.jpg


    3.jpg


    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(绿色亮),再按后,灭。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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

    手机版|爱板网

    GMT+8, 2018-5-27 11:23 , Processed in 0.072970 second(s), 13 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部