历史上的今天

今天是:2024年08月29日(星期四)

正在发生

2019年08月29日 | STM32F429 >> 4. 使用固件库点亮LED

发布者:草莓熊猫 来源: eefocus关键字:STM32F429  固件库  点亮LED 手机看文章 扫描二维码
随时随地手机看文章

本工程板级支持包文件适用于野火stm32f429 开发板。

在这一节的当中,最核心的内容就两点:


学会创建自己的项目;

学会创建板级支持包;


在这里插入图片描述

STARTUP :放置启动文件

STM32F4xx_StdPeriph_Driver 和CMSIS :放置库文件,不需要改动

DOC :放置说明文件

USER :放置用户创建或要进行改动的文件

bsp_led.h

/**

  ******************************************************************************

  * @file    bsp_led.h

  * @author  Waao

  * @version V1.0.0

  * @date    20-Dec-2018

  * @brief   This file contains some board support package's definition for the LED.

  *            

  ******************************************************************************

  * @attention

  *

  * None

*

  ******************************************************************************

  */

#ifndef __BSP_LED_H_

#define __BSP_LED_H_



#include



/************* Define every LEDs' pin, port and clock *************/

#define LED1_PIN             GPIO_Pin_10

#define LED1_GPIO_PORT       GPIOH

#define LED1_GPIO_CLK        RCC_AHB1Periph_GPIOH


#define LED2_PIN             GPIO_Pin_11

#define LED2_GPIO_PORT       GPIOH

#define LED2_GPIO_CLK        RCC_AHB1Periph_GPIOH


#define LED3_PIN             GPIO_Pin_12

#define LED3_GPIO_PORT       GPIOH

#define LED3_GPIO_CLK        RCC_AHB1Periph_GPIOH

/*-------------------------------------------------------------*/



/************* Define the digital operational micro *************/

#define digitalHi(p, i)      {p->BSRRL = i;}

#define digitalLo(p, i)      {p->BSRRH = i;}

#define digitalToggle(p, i)  {p->ODR ^= i;}

/*-------------------------------------------------------------*/



/************* Define every leds' on/off micro *************/

#define LED1_ON              digitalLo(LED1_GPIO_PORT,LED1_PIN)

#define LED1_OFF             digitalHi(LED1_GPIO_PORT,LED1_PIN)

#define LED1_TOGGLE          digitalToggle(LED1_GPIO_PORT,LED1_PIN)


#define LED2_ON              digitalLo(LED2_GPIO_PORT,LED2_PIN)

#define LED2_OFF             digitalHi(LED2_GPIO_PORT,LED2_PIN)

#define LED2_TOGGLE          digitalToggle(LED2_GPIO_PORT,LED2_PIN)


#define LED3_ON              digitalLo(LED3_GPIO_PORT,LED3_PIN)

#define LED3_OFF             digitalHi(LED3_GPIO_PORT,LED3_PIN)

#define LED3_TOGGLE          digitalToggle(LED3_GPIO_PORT,LED3_PIN)

/*-------------------------------------------------------------*/



/************* Define every colors' micro *************/

#define LED_RED             

LED1_ON;

LED2_OFF;

LED3_OFF

 

#define LED_GREEN           

LED1_OFF;

LED2_ON;

LED3_OFF

 

#define LED_BLUE             

LED1_OFF;

LED2_OFF;

LED3_ON

 

#define LED_YELLOW           

LED1_ON;

LED2_ON;

LED3_OFF

 

#define LED_PURPLE           

LED1_ON;

LED2_OFF;

LED3_ON


#define LED_CYAN           

LED1_OFF;

LED2_ON;

LED3_ON


#define LED_WHITE           

LED1_ON;

LED2_ON;

LED3_ON

/*---------------------------------------------------------------*/


void LED_GPIO_Config(void);

#endif


bsp_led.c

/**

  ******************************************************************************

  * @file    bsp_led.c

  * @author  Waao

  * @version V1.0.0

  * @date    20-Dec-2018

  * @brief   This file contains some board support package's functions for the LED.

  *            

  ******************************************************************************

  * @attention

  *

  * None

*

  ******************************************************************************

  */


#include "bsp_led.h"

#include "stm32f4xx_gpio.h"

#include "stm32f4xx_rcc.h"



/**

  * @brief  Initialize the led.

  * @note   None

  * @param  None  

  * @retval None

  */

void LED_GPIO_Config(void)

{

//Establish the structure

GPIO_InitTypeDef GPIO_InitStructure;

//Enable the clock of the Peripheral

RCC_AHB1PeriphClockCmd(LED1_GPIO_CLK|

                       LED2_GPIO_CLK|

                       LED3_GPIO_CLK, 

                       ENABLE); 


//Config the structure

GPIO_InitStructure.GPIO_Mode   = GPIO_Mode_OUT;

GPIO_InitStructure.GPIO_Speed = GPIO_Medium_Speed;

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_DOWN;

//Initialize the led

GPIO_InitStructure.GPIO_Pin   = LED1_PIN;

GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin   = LED2_PIN;

GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin   = LED3_PIN;

GPIO_Init(LED3_GPIO_PORT, &GPIO_InitStructure);

}


关键字:STM32F429  固件库  点亮LED 引用地址:STM32F429 >> 4. 使用固件库点亮LED

上一篇:STM32F429 >> 3. STM32 固件库
下一篇:STM32F429 >> 5. 按键控制LED 开关

推荐阅读

   一、序拿到Sony Xperia XZ2 Premium (以下简称:XZ2P)之后的第一感觉是:Sony好淡定。 在国内「科技与美学」的大环境下,敢于推出在外观上这么有「年代感」的一款骁龙845旗舰机,也着实是一项壮举了。为此我特意做了一个小调查,当我把手机图片发给对数码圈的朋友之后,得到反馈大概相同:索半斤性能不错,外观太丑。而那些对数码不是很在行...
在上一篇文章中,我们已经就如何监测电路板温度进行了介绍。但是,诸如中央处理单元 (CPU)、图形处理单元 (GPU)、专用集成电路 (ASIC) 和现场可编程门阵列 (FPGA) 之类的高性能处理器中的电源管理通常更复杂。通过温度监测,这些系统不仅可以启动安全系统关闭程序,还可以利用温度数据来动态调整性能。监测过程温度可以提高系统可靠性并最大限度提升...
8月28日,苏州绿的谐波传动科技股份有限 (以下简称绿的谐波) 成功登陆科创板,股票代码688017。本次公开发行股票数量3,010.42万股,全部为公开发行的新股,发行后的总股本为120,416,700股。绿的谐波发行价35.06元,开盘涨85.4%,开盘价报65元/股。 据悉,绿的谐波本次计划募集资金5.46亿元,主要用于年产50万台精密项目及研发升级建设项目。 绿的谐...
HarmonyOS鸿蒙系统推出后,EMUI似乎停留在了版本11上。  不过,今年6月,华为电脑管家的说明文件中首次出现了EMUI 12的身影。8月5日,华为在俄罗斯发布nova 8,赫然预装了EMUI 12系统。  8月26日,华为海外官网抢先披露了EMUI 12系统的主要特性:包括简约的UI设计、丰富的动效、字重调整、新的控制面板、新的通知中心、设备+智能协作、分...

史海拾趣

问答坊 | AI 解惑

毫米波宽带集成本振混频组件的研究*

       介绍了一种结构紧凑的一体化混合集成本振混频组件和工程设计方法。该组件由具有机械调谐功能的鳍线耿氏振荡器与采用简化鳍线一微带魔T结构制作的单平衡混频器连接构成。设计制作的工程样品在Ka频段的刚 ...…

查看全部问答∨

[转载].SSRAM、SDRAM和Flash简要介绍.[Memory]

转CalmBright兄的博文:http://www.cnblogs.com/CalmBright/archive/2009/07/19/1526569.html   Abstract 在用NIos II 调试sdram遇到了其容量计算的问题,现介绍如下 Introduction 问题1:什么是DRAM、SRAM、SDRAM? 答: ...…

查看全部问答∨

各位前辈指点下,怎么学习嵌入式开发!

http://www.jslc.org.cn/list.php?act1=do&tid=48&ttid=102 这上面有嵌入式培训的网址: 兄弟我像学习嵌入式开发,不知道这个培训班的内容怎么样啊?各位前辈给点意见啊,谢谢! 下面是一些课程介绍: 课程体系 基于ARM的嵌入式 ...…

查看全部问答∨

请教WinCE系统启动问题

我用的是一块2410的开发板,根据资料说明定制的系统下载到扳子上,系统能正确启动,但是当我使用自定义的系统编译时会提示ROM与RAM的地址冲突,提示错误为: Copy Section Offset:     8cef6f84 FileSys 4K Chunks/Mbyte: 12 ...…

查看全部问答∨

s3c2410 jtag 下载不进去程序

ads1.2 显示下载进去程序了,但是查看内存发现,没有下进去,都为0xff。 …

查看全部问答∨

紧急!!!!!!!!!!

有谁了解深圳"研祥智能科技"公司吗?那边的待遇怎么样,我是08年的应届毕业生,我很想知道,本科生在那边的待遇和发展怎么样呢? 望各位知情的大虾帮帮忙啊 ~谢过~…

查看全部问答∨

什么是Arduino? 送给和我一样不明白的人

什么是Arduino?Arduino是一个比你的台式电脑更能够用来感应和控制现实物理世界的一套工具。 它由一个基于简易单片机并且开放源码的计算机平台,和一套为Arduino板编写程序 的开发环境组成。 Arduino可以用来开发交互产品,比如它可以读取大量 ...…

查看全部问答∨

发帖纪念一下现代计算机之父——阿兰·图灵

今天闲来无事,在家看一本介绍二战期间密码破译的书,在看到有关图灵贡献一段时,突然意识到昨天是这位现代计算机之父的忌日,特发此帖纪念这位伟大的天才。下面是拜读百度上有关图灵的介绍:【概述】阿兰·麦席森·图灵(Alan Mathison& ...…

查看全部问答∨

2812的工作频率

2812最高工作频率是150MHz,如果我只让它工作在15MHz,会不会有什么问题? 此外,外接晶体作为时钟源时,其频率和两个引脚的电容大小有什么关系吗?我看到开发板上用的是30MHz晶体和24pF电容。如果更改晶体频率,电容值也要作相应变动吗? 多谢!…

查看全部问答∨

请问LPM0和LPM1区别

请问下各位: 本人用DCO倍频至8M, LPM0: MCLK OFF, SMCLK ON, ACLKON, DCO ON LPM1: MCLK OFF, SMCLK ON, ACLK ON, DCO ON(DCO用于MCLK和SMCLK) (1)不知两者到底有何区别,LPM1下是否会影响TIMER1(时钟选择为SM ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved