STM32的IO配置点灯

1、led.c的具体的代码:

/*----------------------------------------------------------*/
#include "led.h"

/* -------------------------------------------------------------------------
文件名:led.c
描述  :根据硬件连接配置LED端口,打开对应的寄存器
---------------------------------------------------------------------------*/
void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	//打开PB口时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	//打开PE口时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
	//PB5,PE5引脚设置
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
	//端口速度
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	//端口模式,此为输出推挽模式
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	GPIO_Init(GPIOE,&GPIO_InitStructure);
}

初始化:首先进行时钟的打开,引脚的设置,端口速度设置,端口模式的设置

2、led.h的头文件

#ifndef __LED_H
#define __LED_H

#include "stm32f10x.h"

#define LED2_OFF GPIO_SetBits(GPIOE,GPIO_Pin_5)
#define LED2_ON GPIO_ResetBits(GPIOE,GPIO_Pin_5)
#define LED2_REV GPIO_WriteBit(GPIOE,GPIO_Pin_5,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOE,GPIO_Pin_5))))

#define LED3_OFF GPIO_SetBits(GPIOB,GPIO_Pin_5)
#define LED3_ON GPIO_ResetBits(GPIOB,GPIO_Pin_5)
#define LED3_REV GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_5))))

void LED_Init(void);

#endif

led的开关,翻转

3、main.c函数代码

/*----------------------------------------------------------------------------------
文件名称:控制LED2,LED3闪烁
硬件平台:STM32F103 开发板
作者	:求是
固件库  :V3.5
-----------------------------------------------------------------------------------*/
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include "led.h"

int main(void)
{
	uint32_t i;

  <span style="white-space:pre">	</span>LED_Init();
	LED2_ON;
	LED3_OFF;
	for(i=0; i < 0xffffff; i++)
  while (1)
  {
	for(i = 0; i < 0xfffff;i++);
	LED2_REV;
	LED3_REV;
  }
}

我们写代码的时候使用函数的时候,优先使用函数宏。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 21:58:45

STM32的IO配置点灯的相关文章

STM32的IO口的8种配置

STM32的IO口的8种配置 1 STM32的输入输出管脚有下面8种可能的配置:(4输入+2输出+2复用输出) ① 浮空输入_IN_FLOATING ② 带上拉输入_IPU ③ 带下拉输入_IPD ④ 模拟输入_AIN ⑤ 开漏输出_OUT_OD ⑥ 推挽输出_OUT_PP ⑦ 复用功能的推挽输出_AF_PP ⑧ 复用功能的开漏输出_AF_OD 1.1 I/O口的输出模式下,有3种输出速度可选(2MHz.10MHz和50MHz),这个速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信

STM32的IO口

STM32 的 IO 口 可以由软件配置成如下 8 种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽输出 7.推挽式复用功能 8.开漏复用功能 每个 IO 口可以自由编程,但 IO 口寄存器必须要按 32 位字被访问.STM32 的很多 IO 口都是 5V 兼容的,这些 IO 口在与 5V 电平的外设连接的时候很有优势,具体哪些 IO 口是 5V 兼容的,可以从该芯片的数据手册管脚描述章节查到(I/O Level 标 FT 的就是 5V 电平兼容的). S

STM32CubeMX新建工程+基本IO配置过程

Ⅰ.写在前面 学习本文之前可以查看我前面的文章: STM32CubeMX介绍.下载与安装 STM32CubeMX使用方法及功能介绍 本文接着上一篇文章结合基本IO配置实例,讲述关于STM32CubeMX新建工程的过程.最终通过STM32CubeMX工具配置完成一个驱动IO(点亮LED)的软件工程,也就是通过STM32CubeMX配置完成之后,打开工程直接下载就能点亮LED的工程. 本文使用Keil(MDK-ARM) V5软件为编译环境,如果你没有安装最新版本的软件,请安装最新版本的软件,具体过程

像51一样操作STM32的IO(转)

源:像51一样操作STM32的IO //----------------------------------------------------------------------------------------------------- //别名区 ADDRESS=0x4200 0000 + (0x0001 100C*0x20) + (bitx*4) ;bitx:第x位 // 把“位段地址+位序号”转换别名地址宏 #define BITBAND(addr, bitnum) ((addr &

STM32的IO口配置

每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH),两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR),一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR). GPIO端口的每个位可以由软件分别配置成多种模式. 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽式输出 7.推挽式复用功能 8.开漏复用功能 每个I/O端口位可以自由编程,然

STM32中IO口的8中工作模式

该文摘自:http://blog.csdn.net/kevinhg/article/details/17490273 一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定.         推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小.效率高.输出既可以向负载灌电流,也

STM32端口模式配置——上拉、下拉、模拟、浮空输入;推挽、开漏、复用输出

1.上拉输入:上拉就是把电位拉高,比如拉到Vcc.上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!强弱只是上拉电阻的阻值不同,没有什么严格区分. 2.下拉输入:就是把电压拉低,拉到GND.与上拉原理相似. 3.浮空输入:浮空(floating)就是逻辑器件的输入引脚即不接高电平,也不接低电平.由于逻辑器件的内部结构,当它输入引脚悬空时,相当于该引脚接了高电平.一般实际运用时,引脚不建议悬空,易受干扰. 通俗讲就是让管脚什么都不接,浮空着. 4.模拟输入:模拟输入是指传统方式的

STM32的ADC配置

本文出至:http://bibber.blog.sohu.com/162815791.html ADC是多少位的? 12位 ADC有多少个? 1个.2个或多至3个,视不同的器件而不同:每个又有多个通道. 关于通道的名堂: 10.3.3  通道选择 有16个多路通道.可以把转换分成两组:规则的和注入的.在任意多个通道上以任意顺序进行的一系列转换构成成组转换.例如,可以如下顺序完成转换:通道3.通道8.通道2.通道2.通道0.通道2.通道2.通道15. ●  规则组由多达16个转换组成.规则通道和它

关于STM32的IO口速率问题

输入模式可以不用配置速度,但是输出模式必须确定最大输出频率.当STM32的GPIO端口设置为输出模式时,有三种速度可以选择:2MHz.10MHz和50MHz,这个速度是指I/O口驱动电路的速度,是用来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的.高频的驱动电路,噪声也高,当你不需要高的输出频率时,请选用低频驱动电路,这样非常有利于提高系统的EMI性能.注意:GPIO的引脚速度是指I/O口驱动电路的响应速度而不是输出信号的速度,输出信号的速度与你的程序有关.