欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

嵌入式开发LED的使用(蓝桥杯)

程序员文章站 2022-03-11 15:35:43
文章目录工程准备新建led.h和led.c利用库函数的Example快速写LED驱动蓝桥杯嵌入式资源包:工程准备利用8-液晶驱动参考例程文件夹里面的的LCD例程来做,能复制就复制,节约时间把CT117E-LCD文件夹复制粘贴到其他地方,打开在CT117E-LCD文件夹中新建Hardward文件夹,我把所有驱动文件都存在Hardward文件夹下。每次新建一个文件,保存为.c或者.h文件都存在Hardward文件夹里,并在main.c中调用。在keil工程里,新建Hardward到工程,并添加...



蓝桥杯嵌入式资源包:
嵌入式开发LED的使用(蓝桥杯)


工程准备

利用8-液晶驱动参考例程文件夹里面的的LCD例程来做,能复制就复制,节约时间把CT117E-LCD文件夹复制粘贴到其他地方,打开
嵌入式开发LED的使用(蓝桥杯)
CT117E-LCD文件夹中新建Hardward文件夹,我把所有驱动文件都存在Hardward文件夹下。

每次新建一个文件,保存为.c或者.h文件都存在Hardward文件夹里,并在main.c中调用。
嵌入式开发LED的使用(蓝桥杯)
在keil工程里,新建Hardward到工程,并添加头文件路径
嵌入式开发LED的使用(蓝桥杯)
嵌入式开发LED的使用(蓝桥杯)

新建led.h和led.c

led.h

#ifndef __LED_H #define __LED_H #include "stm32f10x.h" #define LED1 GPIO_Pin_8 #define LED2 GPIO_Pin_9 #define LED3 GPIO_Pin_10 #define LED4 GPIO_Pin_11 #define LED5 GPIO_Pin_12 #define LED6 GPIO_Pin_13 #define LED7 GPIO_Pin_14 #define LED8 GPIO_Pin_15 #define LED_ALL GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15 void LED_Init(void); void LED_Control(u16 led,u8 state); #endif 

led.c

#include "led.h" void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin =LED_ALL; GPIO_Init(GPIOC, &GPIO_InitStructure); } void LED_Control(u16 led,u8 state) { if(state==1) { GPIO_ResetBits(GPIOC,led); GPIO_SetBits(GPIOD,GPIO_Pin_2); GPIO_ResetBits(GPIOD,GPIO_Pin_2); } else if(state==0) { GPIO_SetBits(GPIOC,led); GPIO_SetBits(GPIOD,GPIO_Pin_2); GPIO_ResetBits(GPIOD,GPIO_Pin_2); } } 

将led.c添加到Hardward中
嵌入式开发LED的使用(蓝桥杯)
在main.c中添加如下:

#include "lcd.h" 
LED_Init(); 

可以用LED_Control函数控制灯的亮灭了

利用库函数的Example快速写LED驱动

LED的初始化驱动代码其实就是初始化了GPIO,设置对应引脚为推挽输出

LED的控制驱动代码就是对GPIO进行高低电平的输出

全是调用库函数来实现的,我们可以不必完全背过每个库函数的具体写法,直接从相应的库的Example里复制粘贴即可,大大减少比赛时间。

在比赛提供的V3.5库的"Project->STM32F10x_StdPeriph_Examples->GPIO->IOToggle"文件夹下,打开"main.c"

可以看到里面有基本上所有LED初始化驱动所需的代码,直接复制,改改对应引脚和对应使能时钟即可:
嵌入式开发LED的使用(蓝桥杯)
增加使能时钟GPIOC
增加设置GPIO_Pin_8 ~ GPIO_Pin_15为推挽输出
设置引脚高低电平的函数可以在keil左侧的Project里找到"stm32f10x_gpio.h",打开后拉到文件最底找到:
嵌入式开发LED的使用(蓝桥杯)
如果快速找到这些代码,就可以大大节省敲代码所花费的时间,把更多的时间留在逻辑层.能复制粘贴解决的事就不自己敲,因为这是比赛,有时间限制,要让自己得奖可能最大化。

本文地址:https://blog.csdn.net/weixin_45367147/article/details/107913301

相关标签: LED 嵌入式