当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 嵌入式开发LED的使用(蓝桥杯)

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

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



蓝桥杯嵌入式资源包:
在这里插入图片描述


工程准备

利用8-液晶驱动参考例程文件夹里面的的LCD例程来做,能复制就复制,节约时间把CT117E-LCD文件夹复制粘贴到其他地方,打开
在这里插入图片描述
CT117E-LCD文件夹中新建Hardward文件夹,我把所有驱动文件都存在Hardward文件夹下。

每次新建一个文件,保存为.c或者.h文件都存在Hardward文件夹里,并在main.c中调用。
在这里插入图片描述
在keil工程里,新建Hardward到工程,并添加头文件路径
在这里插入图片描述
在这里插入图片描述

新建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中
在这里插入图片描述
在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初始化驱动所需的代码,直接复制,改改对应引脚和对应使能时钟即可:
在这里插入图片描述
增加使能时钟GPIOC
增加设置GPIO_Pin_8 ~ GPIO_Pin_15为推挽输出
设置引脚高低电平的函数可以在keil左侧的Project里找到"stm32f10x_gpio.h",打开后拉到文件最底找到:
在这里插入图片描述
如果快速找到这些代码,就可以大大节省敲代码所花费的时间,把更多的时间留在逻辑层.能复制粘贴解决的事就不自己敲,因为这是比赛,有时间限制,要让自己得奖可能最大化。

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网