[stm32] LED


 1 /****************************************************************************
2 * 文件名: main.c
3 * 内容简述:
4 *
5 * 演示的是3个蓝色LED(LED1-LED3) 轮流闪烁
6
7 定义:
8 LED1-LED3 ---V6——V8
9 V6----- PB5-LED1
10 V7----- PD6-LED2(仅V2,V2.1 V3板)
11 V8----- PD3-LED3(仅V2,V2.1 V3板)
12
13 基于MDK版本: 3.8
14 基于官方外设库版本: 3.5
15 *
16 /* Includes ------------------------------------------------------------------*/
17 #include "stm32f10x.h"
18
19 GPIO_InitTypeDef GPIO_InitStructure;//////////////////////222222222222222222222222
20 #define LED1_ON GPIO_SetBits(GPIOB, GPIO_Pin_5);//////////111111111111111111111111
21 #define LED1_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_5);
22
23 #define LED2_ON GPIO_SetBits(GPIOD, GPIO_Pin_6);
24 #define LED2_OFF GPIO_ResetBits(GPIOD, GPIO_Pin_6);
25
26 #define LED3_ON GPIO_SetBits(GPIOD, GPIO_Pin_3);
27 #define LED3_OFF GPIO_ResetBits(GPIOD, GPIO_Pin_3);
28
29 void RCC_Configuration(void);
30 void LED_Config(void);
31 void Delay(__IO uint32_t nCount);
32 /****************************************************************************
33 * 名 称:void LED_Config(void)
34 * 功 能:LED 控制初始化函数
35 * 入口参数:无
36 * 出口参数:无
37 * 说 明:
38 * 调用方法:无
39 ****************************************************************************/
40 void LED_Config(void){
41 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOD , ENABLE);////////////333333333333333
42 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1 V6 //将V6,V7,V8 配置为通用推挽输出
43 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
44 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //口线翻转速度为50MHz
45 GPIO_Init(GPIOB, &GPIO_InitStructure);//////////////4444444444444444444444444
46
47 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_3; //LED2, LED3 V7 V8
48 GPIO_Init(GPIOD, &GPIO_InitStructure);
49 }
50 /****************************************************************************
51 * 名 称:int main(void)
52 * 功 能:主函数
53 * 入口参数:无
54 * 出口参数:无
55 * 说 明:
56 * 调用方法:无
57 ****************************************************************************/
58 int main(void)
59 {
60 RCC_Configuration(); //系统时钟配置
61 LED_Config(); //LED控制配置
62 while (1)
63 {
64 LED1_ON; LED2_OFF; LED3_OFF; //LED1亮 LED2,LED3灭(LED2,LED3 仅V3,V2,V2.1板有)
65 Delay(0xAFFFF);
66 LED1_OFF; LED2_ON; LED3_OFF; //LED2亮 LED1,LED3灭(LED2,LED3 仅V3,V2,V2.1板有)
67 Delay(0xAFFFF);
68 LED1_OFF; LED2_OFF; LED3_ON; //LED3亮 LED1,LED2灭(LED2,LED3 仅V3,V2,V2.1板有)
69 Delay(0xAFFFF);
70 }
71 }
72 /****************************************************************************
73 * 名 称:void RCC_Configuration(void)
74 * 功 能:系统时钟配置为72MHZ
75 * 入口参数:无
76 * 出口参数:无
77 * 说 明:
78 * 调用方法:无
79 ****************************************************************************/
80 void RCC_Configuration(void)
81 {
82 SystemInit();
83 }
84 /****************************************************************************
85 * 名 称:void Delay(__IO uint32_t nCount)
86 * 功 能:延时函数
87 * 入口参数:无
88 * 出口参数:无
89 * 说 明:
90 * 调用方法:无
91 ****************************************************************************/
92 void Delay(__IO uint32_t nCount)
93 {
94 for(; nCount != 0; nCount--);
95 }
96 /******************* (C) COPYRIGHT 2011 奋斗STM32 *****END OF FILE****/

[stm32] LED,码迷,mamicode.com

时间: 2024-10-05 03:22:21

[stm32] LED的相关文章

使用VSCode和VS2017编译调试STM32程序

近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能. ST也是,近两年开发的软件工具基本都是跨平台(基于Java)的,比如STM32CubeMX,MCUFinder,STM32CubeProgrammer等.17年年底收购了truestudio的开发公司-Atollic.这个公司的IDE就是基于Eclipse使用GNU套装的. 官方都支持了,那我们有必要了解一下.要是好用,说不定就可以淘汰老旧的

[Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~

3D相关开发(2) [direct-X] 1.direct-X最小框架 [OpenGL] 1.环境搭建及最小系统 51单片机(21) [51单片机] 1602液晶显示控制代码 [51单片机] 1602液晶显示控制代码2 [51单片机] 定时器1 [51单片机] 定时器2-计数示例 [51单片机] 定时器3-计时示例 [51单片机] 中断1-中断整体介绍 [51单片机] TFT2.4彩屏1 [文字显示 画矩形] [51单片机] TFT2.4彩屏2 [32*32文字显示] [51单片机] TFT2.

STM32的LED驱动程序

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

STM32学习笔记(四)——串口控制LED(中断方式)

目录: 一.时钟使能,包括GPIO的时钟和串口的时钟使能 二.设置引脚复用映射 三.GPIO的初始化配置,注意要设置为复用模式 四.串口参数初始化配置 五.中断分组和中断优先级配置 六.设置串口中断类型并使能串口中断 七.编写中断服务函数函数名格式为函数名格式为 USARTxIRQHandler(x 对应串口号). 八.主函数的实现. 一.时钟使能,包括GPIO的时钟和串口的时钟使能 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); //

stm32寄存器版学习笔记01 GPIO口的配置(LED、按键)

STM32的I/O口可以由软件配置成如下8种模式:输入浮空.输入上拉.输入下拉.模拟输入.开漏输出.推挽输出.推挽式复用功能及开漏复用功能.每个I/O口由7个寄存器来控制:配置模式的端口配置寄存器CRL和CRH(模式.速度):数据寄存器IDR和ODR:置位/复位寄存器BSRR:复位寄存器BRR:锁存寄存器LCKR. I/O口模式: GPIO的8种模式 通用输出 推挽输出(Puch-Pull) 可以输出高.低电平,连接数字器件   开漏输出(Open-Drain) 开漏引脚不连接外部的上拉电阻时,

STM32:CooCox IDE环境搭建 点亮LED

做stm32开发时,多数人可能会选择Mdk作为开发环境,不过这东西到底是收费的产品.CooCox IDE是一个免费的,不过貌似在国内知名度不是很高,它是基于Eclipse的一个arm开发环境,其实当初是因为不想用Mdk之后,搭建eclipse的环境时,无意中发现这个玩意的.正好重装系统了,把CooCox的环境搭建,记录下来. 首先当然是下载了,官网上下载最新的 CooCox,然后还有Gcc,这个下载地址倒是找了我半天,https://launchpad.net/gcc-arm-embedded/

STM32学习笔记——点亮LED

STM32学习笔记——点亮LED 本人学习STM32是直接通过操作stm32的寄存器,使用的开发板是野火ISO-V2版本: 先简单的介绍一下stm32的GPIO: stm32的GPIO有多种模式: 1.输入浮空 2.输入上拉 3.输入下拉 4.模拟输入 5.开漏输出 6.推挽式输出 7.推挽式复用功能 8.开漏复用功能 stm32GPIO模式设置相关寄存器设置的介绍 stm32中文参考手册中对GPIO模式设置对应寄存器的详细介绍: 下图为开发板LED的接线图: 根据上面的电路图可知,将GPIOB

简单的STM32 汇编程序—闪烁LED

要移植操作系统,汇编是道不得不跨过去的坎.所以承接上篇的思路,我准备用汇编写一个简单的闪烁LED灯的程式.以此练习汇编,为操作系统做准备. 第一步,还是和上篇一样,建立一个空的文件夹. 第二步,因为是要用汇编来写程式,所以不需要启动代码,这里选择否. 第三步,建立一个.s文件,并把文件添加到工程中. 第四步,在LED.s文件中添加如下代码. LED0 EQU 0x422101a0 RCC_APB2ENR EQU 0x40021018 GPIOA_CRH EQU 0x40010804 Stack_

最简单的STM32入门教程----闪烁LED

本文讲述的是如何从零开始,使用keil建立一个简单的STM32的工程,并闪烁LED灯,给小白看. 第零步,当然首先你得有一个STM32的板子,其IO口上接了一个LED... 第一步,建立一个文件夹0.0 第二步,打开keil,建立工程 在弹出来的对话框中选择你所用的STM32的芯片. 在接下来弹出来的对话框中选择是,这样keil就帮我们建立好了启动文件. 第三步,新建一个main.c文件,并添加到工程中. 点击New按钮,建立一个文本文件. 在建立的文本文件中输入C中的main函数 点击保存 保