3. Stm32f407 led代码简单分析

发布者:火星最新更新时间:2022-07-27 来源: csdn关键字:Stm32f407  led 手机看文章 扫描二维码
随时随地手机看文章

硬件平台:  stm32f407ve


软件平台:  win10 (OS Name:                   Microsoft Windows 10 Enterprise


                                  OS Version:                10.0.18363 N/A Build 18363)


             Keil5  5.26.2


             HAL库版本: 2.14.0(目前下载的最新的)


实验介绍:


本次是使用hal库进行led闪烁实验。(根据之前建立的模板操作,这里不再建立工程模板)


//包含基本的头文件


#include


//led端口的初始化,需要设置对应得IO引脚为输出模式,


//HAL_GPIO_Init();主要是根据这个函数来决定要做得工作


void led_init(void)


{


GPIO_InitTypeDef GPIO_Init;  //定义一个结构体变量。


//1.时钟使能,在stm32的结构中,(片上)外部设备的使用第一步就是要设置时钟使能,复位之后,外部设备都是没有时钟的,降低了整个芯片的功耗,使能时钟,才表示外部设备可以正常工作了。


    //片上外部设备主要指芯片上除了cpu的其他功能电路


__HAL_RCC_GPIOE_CLK_ENABLE();  //GPIOE这个端口的电路被开启,整个GPIOE的16个引脚都可以正常工作了。


//2.端口设置


GPIO_Init.Mode = GPIO_MODE_OUTPUT_OD;  //输出开漏模式


GPIO_Init.Pin = GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15;  //需要配置的引脚


GPIO_Init.Pull = GPIO_PULLUP;    //上拉电阻


GPIO_Init.Speed = GPIO_SPEED_FREQ_LOW;   //IO引脚的工作频率,led的变化不会很快,使用低频率就足够了。


// GPIO_Init.Alternate = ;  //GPIO的mode设置位复用功能的时候,才会配置复用功能


HAL_GPIO_Init(GPIOE, &GPIO_Init);   //这个函数才是使之前配置的语句生效,之前是给结构体赋值


//3.点亮或熄灭灯


}


Main函数是c语言的入口函数


int main(void)


{


int i;


HAL_Init();  //必须在第一个语句执行,这个函数可以不执行,暂时不分析


 


led_init();  //上面提到的初始化IO端口为输出模式


 


while(1)   //循环翻转引脚的状态


{


HAL_GPIO_TogglePin(GPIOE, GPIO_PIN_13);


for(i=0;i<1000000;i++)


  ;


// HAL_Delay(500);


}


}


也可以写成以下的样子,RESET表示输出低电平,SET表示输出高电平

这是一个SysTick定时器的中断处理函数,HAL_Init(); 这个函数初始化了systick,并且开启该定时器,使能了中断,所有需要使用这个处理一下。中断这个部分先可以放一放,后面将会说这个话题。


void SysTick_Handler(void)


{


HAL_IncTick();  //这个函数的源码只是将一个全局变量的值加1,这个中断是1ms发生一次,也就是说,没隔1ms全局变量就会被加1.根据这个全局变量的值,之后的HAL_Delay


函数会使用到这个全局变量。


}


github的工程源码:


https://github.com/zhaozhi0810/stm32f407_hal_keil5

关键字:Stm32f407  led 引用地址:3. Stm32f407 led代码简单分析

上一篇:4. stm32启动代码分析(一)
下一篇:2. Stm32f407 led闪烁示例

推荐阅读最新更新时间:2024-11-09 16:15

三星新款快充充电器解密:自带LED
三星即将推出的中端手机 Galaxy A52、A72 此前已经多次曝光。据外媒 91mobiles 消息,三星的一款全新的充电器的照片遭到工厂泄露。该产品会内置 LED 灯,将能够显示充电状态。   从图片可以看出,这款充电器体积小巧,目前仅展露出一半部分。产品采用通用设计,可安装全球各地的不同的电源插头。充电器顶部没有插口,而是一块带有三星商标的盖板。   由下图可以看出,此款充电器采用目前少见的侧面 USB-A 接口结构,由于成本和产品定位因素并没有采用 Type-C 口。因此外媒预计充电器将用于三星即将发布的 Galaxy A52、A72 手机。   外媒目前尚未得知三星此款充电器的输出功率,从体积来看预计
[手机便携]
stm32f407外部中断
一,外部中断的概念 STM32F4 的每个 IO 都可以作为外部中断输入。 STM32F4 的中断控制器支持 22 个外部中断 / 事件请求: EXTI线0~15:对应外部IO口的输入中断。 EXTI线16:连接到PVD输出。 EXTI线17:连接到RTC闹钟事件。 EXTI线18:连接到USB OTG FS唤醒事件。 EXTI线19:连接到以太网唤醒事件。 EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件。 EXTI线21:连接到RTC入侵和时间戳事件。 EXTI线22:连接到RTC唤醒事件。 每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用
[单片机]
<font color='red'>stm32f407</font>外部中断
安森美半导体LED驱动器方案为互联照明增添智能
NCL31000和NCL31001让OEM轻松开发具有可见光通信 (VLC) 和室内定位系统的智能LED灯具 2021年6月22日—推动高能效创新的安森美半导体 ON Semiconductor,推出两款能提高互联照明系统性能的新器件NCL31000和NCL31001 LED驱动器,使制造商可开发具有基于光的定位技术和可见光通信的LED灯具。这些方案增加数据智能和准确定位 (达30厘米),将彻底变革包括超市、仓库、医院和机场在内众多空间的照明。 NCL31000是安森美半导体广泛LED驱动器系列的一员,专为灯具应用而设计。该器件的核心是一个高能效降压LED驱动器,支持高带宽模拟调光和低至零电流的PWM调光。该驱动器含
[电源管理]
安森美半导体<font color='red'>LED</font>驱动器方案为互联照明增添智能
【STM32】CubeMX+HAL 点亮LED
1. 配置STM32CubeMX 【1.1】打开软件: 【1.2】 在 STM32CubeMX 的主界面中,点击 “New Project” 功能框中的 “ACCESS TO MCU SELECTOR” 功能按钮,从 MCU 开始新的工程。 【1.3】 在弹出对话框的 “MCU/MPU Selector” 选项卡中,首先,在左侧搜索框中输入该工 程需要使用的芯片型号 “STM32F407VE” ,然后,用鼠标在右下方的芯片列表中选择具体的 芯片型号,接着点击右上角的“Start Project” 按钮,开始工程的各项配置。 【1.4】 工程配置的主界面有四个菜单:Pinout & Configuration、Clock
[单片机]
【STM32】CubeMX+HAL 点亮<font color='red'>LED</font>
雷曼光电海外订单需求增加 国内Micro LED超高清显示份额提升
有投资者在投资者互动平台提问: 雷曼光电 的产品很多都是显示屏幕类的,未来可期,未来的高科技产品涉及元宇宙概念?半导体是高科技产业, 雷曼光电 往美国出口的产品订单怎么样? 11月15日, 雷曼光电 (300162.SZ)在投资者互动平台表示,2021年前三季度, 雷曼光电 实现 营业收入 9.23亿元,较上年同期增长40.59%,主要有两大原因造成。 其一, 雷曼光电 国内Micro LED超高清显示业务在专用及商用显示应用领域市场份额持续提升,带动营业收入实现快速增长。 其二,海外出口订单需求持续增加,实现海外业务收入同比增长。 其实,在冬奥会的显示设备上,也有 雷曼光电 的身影。日前, 雷曼光电 在投资者互动平台上表示, 雷
[手机便携]
STM32F407——多功能跑马灯
1、完成多功能跑马灯项目。。 2、预习中断。。 #正点视频第2讲开发板入门,第3讲stm32学习方法,第4讲NVIC中断优先级管理,第28讲外部中断实验-EXTI。。 ##多功能跑马灯 #include sys.h #include delay.h #include usart.h #include led.h #include beep.h #include key.h //ALIENTEK 探索者STM32F407开发板 实验3 //按键输入实验-库函数版本 //技术支持:www.openedv.com //淘宝店铺:http://eboard.taobao.com //广州市星翼电子科技有限公
[单片机]
STC89C52单片机 LED闪烁
LED闪烁 循环语句 循环语句 (1)while(条件表达式){语句} 只有当 while 后面圆括号内条件表达式的值为真时,程序才会重复执行花括号内语句,当条件表达式为假时则不执行花括号内语句。 (2)for( ; ; ) {语句} 例:for(i = 1; i = 100; i++) {语句} 花括号内语句会被执行100次后才退出。 变量的定义 变量 变量是在程序执行过程中其值能不断变化的量。在使用一个变量之前必须进行定义,用一个标识符作为变量名,并指出它的数据类型。 注意:C语言中每条语句必须用分号结束。 常用定义格式如下: 数据类型 变量名; 例如: unsigned char a; // 作用
[单片机]
STC89C52单片机 <font color='red'>LED</font>灯<font color='red'>闪烁</font>
基于51单片机的串口控制led灯的亮灭源程序
/*注意设置波特率为4800,向串口不断输入0,便可实现led的亮灭*/ #include reg52.h //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit led0=P2^0; sbit led1=P2^1; sbit led2=P2^2; /******************************************************************************* * 函数名 :UsartInit() * 函数功能 :设置串口 * 输入
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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