平头哥CDK W806-KIT单片机技术交流组
直播中

TLLED

11年用户 206经验值
擅长:嵌入式技术
私信 关注

【联盛德W806-KIT开发板试用体验】+ GPIO驱动LED灯

本帖最后由 TLLED 于 2021-10-25 09:18 编辑

    上篇熟悉了开发环境的搭建和编译、下载过程,这篇来了解下GPIO的使用,使用板卡上的3个LED来测试。

    一、硬件
    3个LED灯连接到板卡的PB0,PB1和PB2引脚。
    001.png

    二、程序部分
    2.1、在工程文件创建led.c和led.h文件
    002.png

    2.2、led.c
  1. #include "wm_hal.h"


  2. void Init_Led(void)
  3. {
  4.         GPIO_InitTypeDef GPIO_InitStruct = {0};
  5.         
  6.         __HAL_RCC_GPIO_CLK_ENABLE();

  7.         GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2;
  8.         GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;
  9.         GPIO_InitStruct.Pull = GPIO_NOPULL;
  10.         HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  11.         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
  12. }

  13. void Led_test(void)
  14. {
  15.         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
  16.         HAL_Delay(200);
  17.         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 , GPIO_PIN_RESET);
  18.         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
  19.         HAL_Delay(200);
  20.         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1 , GPIO_PIN_RESET);
  21.         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_2, GPIO_PIN_SET);
  22.         HAL_Delay(200);
  23.         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2 , GPIO_PIN_RESET);
  24.         HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_SET);
  25.         HAL_Delay(200);
  26.         //HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 |GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_RESET);
  27.         //HAL_Delay(200);
  28.         
  29. }
       2.3、led.h
  1. #ifndef LED_H
  2. #define LED_H

  3. void Init_Led(void);
  4. void Led_test(void);

  5. #endif



    三、运行结果

    300.gif

更多回帖

发帖
×
20
完善资料,
赚取积分