STM32之使用库函数驱动LED灯

一、熟悉GPIO结构体

以下这个结构体是我从官方手册中获取的:

typedef struct
{
u16 GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
} GPIO_InitTypeDef;

二、编写程序步骤

1、首先定义一个GPIO_InitTypeDef的结构体,给结构体起一个名字 GPIO_InitStructure;

GPIO_initTypeDef   GPIO_initStructure ;

2、初始化RCC时钟   

RCC_APB2PeriphClockCmd  使能或者失能 APB2 外设时钟,从下图看GPIOA-G均属于APB2时钟总线。

3、对结构体成员赋值,详情参考固件库使用手册

//GPIO管脚

u16 GPIO_Pin;
//GPIO口的速率     

GPIOSpeed_TypeDef GPIO_Speed;

//GPIO的输出模式

GPIOMode_TypeDef GPIO_Mode;

4、初始化GPIO

这里要注意,每更新一个GPIO口就要初始化一次(用到了多组GPIO的情况)

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

5、

GPIO_SetBits  设置指定的数据端口位

GPIO_ResetBits  清除指定的数据端口位

时间: 2024-07-30 13:26:02

STM32之使用库函数驱动LED灯的相关文章

软件-linux驱动问题详解led灯实现

问题描述 linux驱动问题详解led灯实现 请问linux下led灯驱动实现的全过程,从硬件到软件,谢谢 解决方案 http://wenku.baidu.com/view/4cf8391314791711cc7917ea.html 解决方案二: 驱动led无非是操作GPIO输出的搞低电平而已,给你个我操作2440GPIO的例子:http://blog.csdn.net/xiangpingli/article/details/39610729

kinect一代安装时,设备无法被识别,显示为未知设备 ,LED灯不亮,试过多版本SDK

问题描述 kinect一代安装时,设备无法被识别,显示为未知设备 ,LED灯不亮,试过多版本SDK 手动安装C:Program FilesMicrosoft Kinect DriversDrivers的驱动也不行显示 笔记本是WIN764位 ,尝试过1.7,1.8,1.6三个版本的SDK均不能成功安装,求助各位大神啊 解决方案 kinect可能坏了,也可能它的连线坏了,重新换一根线,还不行就再买一个kinect试试看. 解决方案二: 是不是驱动安装有问题,跟你系统兼容问题等. 解决方案三: 同问

net4 5-C#控制LED灯总算发送是失败

问题描述 C#控制LED灯总算发送是失败 主程序 using LedDemo.Common; using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using Syste

socket通信——多角度控制LED灯亮灭

今天以物联网网关(网关链接)以服务器,在多个客户端就做一个非常简单的功能:点亮或熄灭网关上的LED灯.目前想到了三种方式,分别是:TCP&UDP测试工具.自编Java客户端和Mono Android客户端.相信这会很有意思的.   1.服务器端 在使用或编写客户端之前,首先来看看服务器端代码,其专门通过串口烧进网关内部 OutputPort led = new OutputPort((Cpu.Pin)GPIO_NAMES.PF8, false); Socket sc; Socket ss = n

用LED灯和按键来模拟工业自动化设备的运动控制

开场白:前面三节讲了独立按键控制跑马灯的各种状态,这一节我们要做一个机械手控制程序,这个机械手可以左右移动,最左边有一个开关感应器,最右边也有一个开关感应器.它也可以上下移动,最下面有一个开关感应器.左右移动是通过一个气缸控制,上下移动也是通过一个气缸控制.而单片机控制气缸,本质上是通过三极管把信号放大,然后控制气缸上的电磁阀.这个系统机械手驱动部分的输出和输入信号如下:    2个输出IO口,分别控制2个气缸.对于左右移动的气缸,当IO口为0时往左边跑,当IO口为1时往右边跑.对于上下移动的气

安全删除USB设备之后灭掉LED灯的方法

在当您在系统中安全删除USB装置以后,会发现USB装置上的LED唆使灯还是常亮的.实际上这个效果是在Vistaa系统时才改变的,之前的XP系统都是安全删除以后LED灯就会灭掉.当时微软对系统做了一个变化,并沿用至今.如果您觉得删除USB装置以后,亮灯碍眼,那今天三联教程就来教教大家如何灭掉它. 在XP系统时期,如果您安全删除了USB装置,USB装置就停止通电,LED灯自然也就不亮了.而从Vista系统开始,微软做出了修改,即使安全删除 USB装置,装置还会继续通电.如果您觉得有需要,希望USB装

wi-fi-Android 如何通过wifi 控制51单片机led灯亮灭源码

问题描述 Android 如何通过wifi 控制51单片机led灯亮灭源码 请问如何做一个安卓软件控制51单片机led灯的亮灭?有没有人能教我或者给我源码看看 解决方案 串口实现,往wifi透传的方向考虑.看一下这个软件 http://www.wandoujia.com/apps/com.ceacsz.ioe.wifi

lpc1768-用串口接收字符为命令来控制LED灯,该怎么写程序?(LPC1768)

问题描述 用串口接收字符为命令来控制LED灯,该怎么写程序?(LPC1768) 用串口助手发送特定字符来控制LED的亮灭?? 或者给个思路吧!核心的代码写一点也好啊! 有没有大神帮忙把控制部分的程序写下,谢谢啦!刚开始学,请教啊! 解决方案 继电器应该有自己的串口命令吧,你发命令就行了 解决方案二: 买来继电器后 会给你接口的 解决方案三: 单片机接收字符,然后判断,然后使能对应的LED

camera-为什么Android 照相机LED 灯2秒后关掉?

问题描述 为什么Android 照相机LED 灯2秒后关掉? 我在程序中使用相机闪光灯,使用代码实现,开灯和关灯功能可以实现,但是2秒钟后 灯又灭了.如果我再次点击按钮,就强行关闭了.什么原因造成的呢? private void processOffClick() { //togglebutton.setButtonDrawable(R.drawable.offbutton); System.out.println("in off state"); if( cam != null ){