这个LED的小程序基于的是德飞莱的最小系统板 我当时写这个程序的时候想的就是这个程序能够便于理解 也便于移植 便于调用 我参加过电赛 对于STM32的一个管脚修改的麻烦是深有体会 一个地方不对就没法工作 所以这次我写这个库的时候 我也特别注意了这些方面 一个小LED 挺简单的 有时候用来做调试用的话 我觉得还是挺好的 下面我将自己的源码分享  个人能力有限 大神不要笑哈!!!

在这个源码里面 你仅仅只需要修改

的内容 就可以快速的对STM32的任意一个管脚实行 高低电平控制的

注意就是里面有个delay的操作 这个事先要在主函数里面进行初始化的(如果不初始化会死在循环里面) 这个delay的源码是借用原子大哥的

#ifndef __LED_H
#define __LED_H #include<sys.h> #define LED2_ON 1
#define LED2_OFF 2 #define LED3_ON 3
#define LED3_OFF 4 #define LED2_REV 5 //管脚取反
#define LED3_REV 6 //管脚取反 #define LED2_CLK RCC_APB2Periph_GPIOE
#define LED2_PORT GPIOE
#define LED2_PIN GPIO_Pin_5 #define LED3_CLK RCC_APB2Periph_GPIOB
#define LED3_PORT GPIOB
#define LED3_PIN GPIO_Pin_5 #define LED2 PEout(5) // PF6
#define LED3 PBout(5) // PF7 void LED_Init(void);
void LED2_Init(void);
void LED3_Init(void); void DEBUG_LED(u8 x); #endif
/******************************************************************************
* 文件 LED.c
* 作者 Belye
* 版本 ST V3.5.0
* 日期 03-February-2016
* 提要 基于德飞莱开发板的LED的底层驱动程序
* 使用方式 函数调用示例
* 注意 记得修改对应的LED初始化管脚
******************************************************************************/
//V1.0 修改说明
//调整代码 加入取反 /*************************************** 函数调用示例 ************************************
LED2_Init();//记得修改此函数里面的内容
DEBUG_LED(LED2_ON);
**********************************************************************************************/ #include<LED.h>
#include<delay.h> void LED_Init()
{
LED2_Init();
LED3_Init();
}
void LED2_OPEN()
{
LED2=;
} void LED2_CLOSE()
{
LED2=;
} void LED2REV()
{
GPIO_WriteBit(LED2_PORT, LED2_PIN,(BitAction)(-(GPIO_ReadOutputDataBit(LED2_PORT, LED2_PIN)))); } void LED3_OPEN()
{
LED3=;
} void LED3_CLOSE()
{
LED3=;
} void LED3REV()
{
GPIO_WriteBit(LED3_PORT, LED3_PIN,(BitAction)(-(GPIO_ReadOutputDataBit(LED3_PORT, LED3_PIN))));
} void DEBUG_LED(u8 x)
{
switch (x)
{
case :
LED2_OPEN();
break;
case :
LED2_CLOSE();
break;
case :
LED3_OPEN();
break;
case :
LED3_CLOSE();
break;
case :
LED2REV();
break;
case :
LED3REV();
break;
default:
break;
}
} void LED2_Init(void)
{ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(LED2_CLK, ENABLE); GPIO_InitStructure.GPIO_Pin = LED2_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED2_PORT, &GPIO_InitStructure);
GPIO_SetBits(LED2_PORT,LED2_PIN); } void LED3_Init(void)
{ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(LED3_CLK, ENABLE); GPIO_InitStructure.GPIO_Pin = LED3_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED3_PORT, &GPIO_InitStructure);
GPIO_SetBits(LED3_PORT,LED3_PIN); }

STM32的LED驱动程序的更多相关文章

  1. 11.ok6410之led驱动程序编写

    led驱动程序编写 本文主要包含三部分,led驱动程序led.c编写,编译驱动程序的makefile的编写,以及使用驱动程序的应用程序led_app的编写 一.led.c编写 #include < ...

  2. BeagleBone Black Linux驱动程序开发入门(1): LED驱动程序

    这篇文章展示如何在BBB平台上编写LED驱动程序,本文的程序是根据国嵌S3C2440的LED驱动的例子并结合内核中OMAP系列的gpio操作来改的.本文中的程序包括驱动程序模块和用户空间程序.废话不多 ...

  3. 【Linux驱动】TQ2440 LED驱动程序

    ★整体介绍 LED驱动程序主要实现了TQ2440开发板上的4个LED灯的硬件驱动,实现了对引脚GPIOB5.GPIOB6.GPIOB7.GPIOB8的高低电平设置(common-smdk.c中已经实现 ...

  4. LED驱动程序分析

    混杂设备 LED驱动程序分析 /******************************* * *杂项设备驱动:miscdevice *majior=10; * * *************** ...

  5. 使用设备树来编写led驱动程序

    在总线设备驱动模型中,平台设备是写在c文件中.使用设备树时,平台设备事先并不存在,在dts文件中构造节点,节点里面含有资源.dts文件被编译成dtb文件,然后传递给内核.内核会解析dtb文件,得到一个 ...

  6. 基于设备树的led驱动程序

    #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include ...

  7. Linux下的led驱动程序,ok6410

    本程序採用动态映射的方法控制led.硬件平台为飞凌的ok6410 led.h:定义控制命令 #ifndef _LED_H #define _LED_H #define LED_MAGIC 'M' #d ...

  8. stm32配置led

    前言:我们学习一门新语言的时候都是先从hello world入门,stm32也有自己的入门方式,那就是流水灯的配置. 在配置之前我们需要先配置好编译环境,我们需要手动修改头文件中的一些内容. 1.首先 ...

  9. 小结-stm32 驱动LED灯

    使用位带操作,位带操作就是把每个比特膨胀成一个32位的字,当访问这些字的时候就访问这些比特位. http://www.cnblogs.com/xiaobo-Linux/ 然后,端口使能: //³õʼ ...

随机推荐

  1. IOS开发根据字体大小等获取文字所占的高度

    Model *model = self.modelArr[indexPath.row]; //根据label文字获取CGRect NSMutableParagraphStyle *paragraphS ...

  2. Django form模块使用心得

    最近用Django 写了一个网站,现在来分享一下对Django form 的一些心得. 一,创建一个表单 创建一个Form表单有两种方式: 第一种方式是继承于forms.Form,的一个子类,通过在f ...

  3. Git和Github的配合使用

    Git教程 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 Git 本地仓库详解  ...

  4. 排序问题思考(要求时间和空间复杂度尽可能的低)【Part 2】

    继上篇博文,今天我将先介绍一下什么是计数排序,将计数排序描述清楚后,再进行后续的桶排序方法解决这个问题. 通常情况下,一提到排序,大家第一反应就是比较,其实,今天我要说的这个计数排序,不是基于比较的排 ...

  5. Java-io流入门到精通详细总结

    IO流:★★★★★,用于处理设备上数据. 流:可以理解数据的流动,就是一个数据流.IO流最终要以对象来体现,对象都存在IO包中. 流也进行分类: 1:输入流(读)和输出流(写). 2:因为处理的数据不 ...

  6. 如何使用php session

    学会php session可以在很多地方使用,比如做一个后台登录的功能,要让程序记住用户的session,其实很简单,看了下面的文章你就明白了.   PHP session用法其实很简单它可以把用户提 ...

  7. systemd的命令systemctl set-property testSpeed CPUQuota=10%

    总结 systemd 的资源限制一般要写到unit文件中,但是,现在测试发现会有 被值被覆盖的现象:经过排查发现是,没有 使用systemd的接口,凡是使用echo "" > ...

  8. 怎么使用OCR文字识别软件图像压缩功能

    ABBYY FineReader是一款非常实用的OCR文字识别软件,在使用ABBYY FineReader保存文档时可以选择图像格式和压缩方法,通过图像压缩可以减小文件的大小,图像压缩方法视压缩率和数 ...

  9. BNU Online Judge-34976-数细菌

    题目链接 http://www.bnuoj.com/bnuoj/problem_show.php?pid=34976 题目分析通过a b可以设x,y x+y=a    x+3*y=b  解出x,y, ...

  10. jQuery event,冒泡,默认事件用法

    jQuery event,冒泡,默认事件用法 <%@ page language="java" import="java.util.*" pageEnco ...