STM32F429 >> 4. 使用固件库点亮LED

发布者:草莓熊猫最新更新时间:2019-08-29 来源: 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 开关

推荐阅读最新更新时间:2024-11-20 20:06

基于stm32f103zet6点亮LED之启动文件
终于开始点亮第一个LED了,惯用思维,从模仿开始!前两天一直在做最小系统板,今天上午才调试出来,测试程序也是的别人的,从现在开始就来仔细分析一下这第一个点灯大法吧! 由于在开始学习stm32之前已经接触过相关的指导书了,所以现在学起来还是比较轻松的,废话不多说,直接从启动文件开始吧! 启动文件这部分和arm11的还是很类似的,是开发板上电后执行的第一段代码,唯一不同的感觉的就是比arm11的启动文件简单多了,下面的一些代码解释都是和arm11对照来说的,上代码吧,声明,我使用的是3.5的库!芯片的具体型号是stm32f103zet6!这里我不适用keil自带的启动代码,为什么,百度能搜到原因! 首先明白一点自己所用的板子的简单介绍
[单片机]
基于stm32f103zet6<font color='red'>点亮</font><font color='red'>LED</font>之启动文件
STM32HAL库控制TIM点亮led
参考视频是小熊派的 开发板 : 【STM32单片机学习】白嫖单片机教程——手把手带你学习STM32L系列单片机(HAL库) 首先要知道公式: 定时器时间=1/(时钟频率/预分频/计数周期) 然后了解定时器的时钟由谁供给,以STM32F103ZET6为例,查他的时钟总线资料,发现有APB1、APB2都有了解定时器的: 由图可知,TIM2的时钟由APB1提供。 简单来说 就是APB2提供高级定时器–定时器1和定时器8的时钟。 APB1提供定时器2到7的时钟,看你需要哪一个了,其对应的是CubeMX的这里: 以TIM2为例: 根据公式:定时器时间=1/(时钟频率/预分频/计数周期) 我们要一个一秒钟的定时时间
[单片机]
STM32HAL库控制TIM<font color='red'>点亮</font><font color='red'>led</font>
如何从官网下载STM32固件库
想在ST官网下载STM32F10x的固件库,找了很长时间才找到,为了方便像我一样的菜鸟学习方便,现将如何从官网下载STM32F10x固件库展示如下: 首先进入官网http:/www.st.com/ ,如下图: 在下面选项卡中选择Support- Tools & Resources,如下图: 进入如下界面: 点击左面的Software Tools,进入如下界面: 再点击左侧的Runtime Software下的Firmware进入如下界面: 在右侧Firmware for MCUs下点选STM32,进入如下界面: 搜索也好,一个一个找也好,最后都会看到如下的一项: 可以看到最新的firmware是3.5
[单片机]
如何从官网下载STM32<font color='red'>固件库</font>
7.点亮led的操作
Led可以作为我调试程序的工具。 OK6410的核心板原理图:led的部分截图: 我们从上面的原理图知道,led1-4对应的是GPM0-3. 2.GPIO GPIO是General-Purpose Input/Output Ports:通用输入/输出端口。在嵌入式系统中,CPU经常需要控制许多结构简单的外部设备或者电路,这些设备通常只要两种状态,即是开关,对这些设备的控制,使用传统的串口或者USB口就显得复杂,所以,在嵌入式为控制器上通常提供了一种 通用的可编程的I/O端口 ,也就是GPIO。 下面是6410GPIO的信息:GPMCON控制寄存器: GPMDAT数据寄存器: 实现的代码:点亮。3、4灯。
[单片机]
7.<font color='red'>点亮</font><font color='red'>led</font>的操作
STM32 v3.5固件库systick ms延时
《如何从STM32F10xxx固件库V2.0.3升级为STM32F10xxx标准外设库V3.0.0》一文中的 3.3.2 SysTick 讲到: 在标准外设库中移除了SysTick的驱动,因此用户必须调用CMSIS定义的函数。 CMSIS只提供了一个SysTick设置的函数,替代了STM32原有SysTick驱动的全部函数。 SysTick_Config(uint32_t ticks); 该函数设置了自动重载入计数器(LOAD)的值,SysTick IRQ的优先级,复位了计数器(VAL)的值,开始计数并打开SysTick IRQ中断。SysTick时钟默认使用系统时钟。 下面的例程为使用固件库V2.0.3进行SysTi
[单片机]
单片机环境的搭建-1.4点亮一个LED
1.4 点亮一个LED 在本教程中,我们使用最常见的STC89C52RC-DIP40单片机作为主控芯片,这也是很多初学者入门的单片机。IDE采用Keil软件,该软件自带编译器,然后通过烧写器将指令下载到单片机。 1.4.1 新建一个keil工程 (1) 双击keil软件 (2) 点击project- New uvision Project, 选择保存路径,取一个工程名字LED (3) 在CPU中选择Atmel,找到并选择AT89C52,点击确定 接下来弹出一个对话框,选择 否 (5) 点击 创建一个空白文件 或者使用ctrl+N(File下面的那个图标) ​然后点击保存(ctrl
[单片机]
单片机环境的搭建-1.4<font color='red'>点亮</font>一个<font color='red'>LED</font>
【汇编】AT89C52点亮一盏LED灯(汇编语言)
一、keil4建立AT89C52的工程环境 1、建立新工程 -- Atmel -- AT89C52 2、 选中后会弹出是否导入启动文件   如果是C语言环境选择“是”,这里我们是汇编,选择“否” 3、创建汇编文件,后缀名 .asm,将文件添加到工程 4、环境搭建完成 二、程序 这里我们直接上汇编点亮AT89C52单片机P1.0口的程序,然后再进行语句分析 ORG 0000H LJMP MAIN1 MAIN: MOV P1,#001H MAIN1: MOV P1,#00AH END 分析: 1、ORG:规定程序块或数据块存放的起始地址,即规定程序从0000H地址开始,换句话说,以上述程序为例,ORG 00
[单片机]
【汇编】AT89C52<font color='red'>点亮</font>一盏<font color='red'>LED</font>灯(汇编语言)
编程控制8位LED循环点亮
8个LED正极通过1千欧的限流电阻接到电源正极,负极接单片机控制端P0口。只要P0口管脚输出低电平,对应的LED就会被点亮。原理图如下: 单片机控制外部器件是通过I/O口的操作来实现的,因此对外围器件的操作,实际上是对I/O口的操作。 编程如下: 1、循环左移 #include reg51.h //51系列单片机头文件包含对单片机内部寄存器等的定义 #include intrins.h //本征函数头文件,包含此头文件可以在程序中直接调用本征函数_crol_(a,n) #define uchar unsigned char /*以下三句属宏定义语句,以#define LED P0为例,它
[单片机]
编程控制8位<font color='red'>LED</font>循环<font color='red'>点亮</font>
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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