历史上的今天
返回首页

历史上的今天

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

正在发生

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

2019-08-29 来源:eefocus

本工程板级支持包文件适用于野火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);

}


推荐阅读

史海拾趣

承兴(CX)公司的发展小趣事

1996年,承兴公司在香港成立,并迅速设立了亚洲总部。起初,公司专注于电子产品的代理和销售,凭借其敏锐的市场洞察力和高效的供应链管理能力,承兴逐渐在亚洲市场崭露头角。通过与宝洁中国、百事中国等知名品牌建立合作关系,承兴获得了稳定的供应链资源和市场份额。

北京人民电器厂公司的发展小趣事

北京人民电器厂有限公司,作为北方地区最大的低压电器制造企业,于1995年成功研发出全球首台高分断微型直流断路器。这一创新成果不仅填补了国内空白,更在国际上展现了中国在低压电器领域的研发实力。该断路器的诞生,标志着北京人民电器在直流断路器技术领域迈出了坚实的一步,为后续的产品研发和市场拓展奠定了坚实的基础。

Coleman Cable Inc公司的发展小趣事

随着全球环保意识的不断提高,Coleman Cable积极响应绿色发展的号召,将环保理念融入公司的生产和经营中。公司研发出环保型电缆产品,采用环保材料和工艺,减少生产过程中的环境污染。同时,公司还加强废弃电缆的回收和处理工作,推动资源的循环利用,为行业的绿色发展做出了贡献。

DALLAS公司的发展小趣事

Dallas公司一直将技术研发作为公司发展的核心驱动力。公司投入大量资源用于半导体领域的技术研发,不断探索新的技术方向和产品应用。这种持续的技术研发投入使得Dallas公司能够不断推出具有创新性和竞争力的产品,保持了在市场中的领先地位。

ATC [American Technical Ceramics]公司的发展小趣事

电子行业是一个充满竞争和变化的领域,企业需要不断创新才能应对市场的挑战。假设ATC在面对激烈的市场竞争时,始终保持对创新的追求和投入。公司不仅注重产品技术的创新,还积极探索新的商业模式和市场策略。通过不断创新,ATC成功应对了市场的各种挑战,保持了稳健的发展态势。

Geyer Electronic E K公司的发展小趣事

企业的发展离不开人才的培养和团队的建设。假设ATC高度重视人才培养和团队建设,投入大量资源进行员工培训和团队建设活动。公司不仅注重员工的技能提升和职业发展,还积极营造一种积极向上的企业文化氛围。通过这些努力,ATC培养了一支高素质、富有创新精神的团队,为公司的发展提供了有力的人才保障。

请注意,以上故事均是基于假设和一般性的行业趋势构建的,并不代表ATC公司的实际发展历程。如果您需要了解关于ATC公司的具体信息和发展故事,建议查阅相关的官方资料、行业报告或新闻报道。

问答坊 | AI 解惑

NRF2401 NRF24L01 NRF905 RF903 CC1100 CC2500无线收发模块编程指南

NRF2401 NRF24L01 NRF905 RF903 CC1100 CC2500无线收发模块编程指南 你好,我们是无线制造供应商, 公司主页www.newmsg.com 电话:13704018223 陈工 欢迎交流 RF903 特点: (1) 433Mhz 开放ISM 频段免许可证使用 (2) 最高工作速率50kbp ...…

查看全部问答>

FFT算法的实现

关于FFT算法全国大学生电子设计竞赛连续出了两年了,07年的音频信号分析仪,09年的音频均衡器也可以用FFT去做.国内的学生最不擅长还是算法,所有网上都找不到相关的赛后优秀论文,所以我在这里给出我已经实现并验证的思路,算法参考了网上给出的一些 ...…

查看全部问答>

tornado for mips, 急!!!!!!!

各位大虾,我刚开始做vxworks 在broadcom上开发,急需tornado for mips版本,先行谢过!!! QQ: 510765226 谢谢! …

查看全部问答>

bluez植入uclinux的问题

现在有一个bluez植入uclinux的课题,本人能力有限,想请大家帮帮忙,当然是有偿帮忙的。哪位有兴趣可以与我联系。vonsavant@163.com…

查看全部问答>

请问ST7LITE15B如何驱动伺服马达

                                 现在有项目要用到伺服马达,请问如何驱动,现硬件到齐了差软件写驱动.请帮下手,网上ST资料难找,谢谢…

查看全部问答>

TI C2000 LED资料

TI C200 LED资料 [ 本帖最后由 安_然 于 2011-9-30 16:07 编辑 ]…

查看全部问答>

单片机程序

各位哥哥姐姐们,我有一个51单片机程序不会编,需要各位的支持!应该有点难度!挑战一下!我最近做一个项目,是用一个单片机开发板控制一个加热电路。具体是通过pt100温度传感器(0-100c)测得水温得到一个4-20mv的电流,然后通过pt100温度变送器变 ...…

查看全部问答>

关于降压芯片的疑问

有没有这样的DC-DC芯片? 输入能够承受比较大的电流,输入电压大概是在90V以上,要求能够降压到12V(加上滤波电容后这个电压用来作为电源) 我查到了好几本书,都没有发发现合适的集成芯片。…

查看全部问答>

wince6.0 R3 2012年全年更新包初步测试结果

Windows Embedded CE 6.0 R3 Product Update Rollup, December 31, 2012 How to install this updateAll updates for Windows Embedded CE 6.0 R3 require the following: 1) Platform Builder 6.0 is installed on the machine.2) Upon install ...…

查看全部问答>

电子爱好者的学习指南

这篇帖子是写给入门者的,要解决一个问题:初学者应重点掌握什么电子知识,大学阶段如何学习?  ­ 先说点貌似题外的东西——3个谬论。  ­         谬论一:高中老师常对我们说 ...…

查看全部问答>