查看: 868|回复: 0

【怪兽F7】开始打怪——LED

[复制链接]
  • TA的每日心情
    奋斗
    2023-7-6 08:48
  • 签到天数: 169 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-6-20 08:54:51 | 显示全部楼层 |阅读模式
    分享到:
    在电路图Arduino UNO connector中,有一个LED,为LD1,位置在复位按键的旁边。
    它连接到了GPIO的PI1上。
    原理图如下,R59为限流电阻。SB8中短接线。

    从上图可以看到,当PI1为高电平时,LD1被点亮,当PI1为低电平时,LD1熄灭。
    所有的GPIO共有12种模式,分别如下所示。
    这里,要控制LED,那么GPIO中的PI1应该设置为GPIO_MODE_OUTPUT_PP模式。
    #define  GPIO_MODE_INPUT                       #define  GPIO_MODE_OUTPUT_PP                   #define  GPIO_MODE_OUTPUT_OD                    #define  GPIO_MODE_AF_PP                        #define  GPIO_MODE_AF_OD                        #define  GPIO_MODE_ANALOG                     #define  GPIO_MODE_IT_RISING                  #define  GPIO_MODE_IT_FALLING                  #define  GPIO_MODE_IT_RISING_FALLING            #define  GPIO_MODE_EVT_RISING                   #define  GPIO_MODE_EVT_FALLING                #define  GPIO_MODE_EVT_RISING_FALLING打开GPIOK的时钟,使用如下的宏。
    #define __HAL_RCC_GPIOK_CLK_ENABLE()   do { \                                        __IO uint32_t tmpreg; \                                        SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOKEN);\                                        /* Delay after an RCC peripheral clock enabling */ \                                        tmpreg = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOKEN);\                                        UNUSED(tmpreg); \                                      } while(0)总结下来,GPIO的初始化,为GPIO_InitTypeDef类型的结构体进行赋值,赋值的内容是根据GPIO的使用来确定的。使用HAL_GPIO_Init()对要使用的GPIO的对应的Pin脚进行初始化。到此GPIO的初始化就完成了,可以正常的使用了,不过最好在使用前,置一个初始的状态,这里要使用的函数是HAL_GPIO_WritePin();
    那么完整的GPIO初始化程序如下:

    完成如下的GPIO配置后,就可以对PIN进行操作了,这里的说明一下,GPIO的操作函数增加了一个反转的函数,之前只有写高、写低的两个函数,有了反转函数,做LED就方便多。
    函数实现为:

    通过以上程序,一个LED的点亮与熄灭功能和程序就写好了。
    烧写和板子上后,会有复制键旁的LED闪烁了。
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 14:40 , Processed in 0.116352 second(s), 18 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.