本帖最后由 TLLED 于 2021-10-25 09:18 编辑
上篇熟悉了开发环境的搭建和编译、下载过程,这篇来了解下GPIO的使用,使用板卡上的3个LED来测试。
一、硬件
3个LED灯连接到板卡的PB0,PB1和PB2引脚。
二、程序部分
2.1、在工程文件创建led.c和led.h文件
2.2、led.c
- #include "wm_hal.h"
- void Init_Led(void)
- {
- GPIO_InitTypeDef GPIO_InitStruct = {0};
-
- __HAL_RCC_GPIO_CLK_ENABLE();
- GPIO_InitStruct.Pin = GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2;
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT;
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
- }
- void Led_test(void)
- {
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
- HAL_Delay(200);
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_SET);
- HAL_Delay(200);
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1 , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_2, GPIO_PIN_SET);
- HAL_Delay(200);
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2 , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 | GPIO_PIN_1, GPIO_PIN_SET);
- HAL_Delay(200);
- //HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0 |GPIO_PIN_1 | GPIO_PIN_2, GPIO_PIN_RESET);
- //HAL_Delay(200);
-
- }
2.3、led.h
- #ifndef LED_H
- #define LED_H
- void Init_Led(void);
- void Led_test(void);
- #endif
三、运行结果