1蓝桥杯嵌入式——点灯

方便复习使用

一、CubeMX配置——根据CT117-M4产品手册中的原理图配置好GPIO口的状态

 

1.有8个灯,对应PC8~PC15。PD2为使能控制端口,必须也进行配置,都为输出

PC8~PC15和PD2都配置为GPIO_Output

 2.同时注意到使PC8~PC15初始默认拉高,防止在初始化时被点亮

 配置完毕

 二、建立led.c和led.h

1.建立

 

 2.配置


三、程序

led.h:
#ifndef _LED_H_
#define _LED_H_

#include "main.h"

void LED_Disp(uchar dsLED);

#endif
 led.c:
#include "led.h"

//led仅用到PC的8~15口,若直接配置需要左移8位
void LED_Disp(uchar dsLED)
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOC,dsLED<<8,GPIO_PIN_RESET);
	HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}
main.c:
int main(void)
{
  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
    MX_GPIO_Init();
  /* USER CODE BEGIN 2 */
	LED_Disp(0x00);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		LED_Disp(0x03);
		HAL_Delay(500);
		LED_Disp(0X00);
		HAL_Delay(500);
		
  }
  /* USER CODE END 3 */
}

实现功能为前两个灯(led1和led2)每500ms亮灭

注:keil5智能提示打开(方便写函数)

左上角Edit->Configuration

 详细内容见b站:https://www.bilibili.com/video/BV1wi4y1172U/?p=3&spm_id_from=333.880.my_history.page.click&vd_source=ef508b6017649e53ff77aa84f50a83ea

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值