datasheet

STM32cubeMX 基于stm32的定时器实现定时1秒LED闪烁

2019-06-15来源: eefocus关键字:STM32cubeMX  stm32  定时器  LED闪烁

软件:

STM32CubeMX V4.25.0  

keil_u5

固件库版本:

STM32Cube FW_F1 V1.6.1

硬件:

OneNet 麒麟座V1.4

在STM32CubeMX中新建项目,选择正确的MCU型号

 

首先设置RCC和SYS,如下图

 

启用TIM1,选择内部时钟源(Internal Clock)。

 

然后根据板子实际情况设置时钟(麒麟座外部晶振是12M,STM32F103x的最高主频是72M),如下图

GPIO设置 PC7和 PC10为GPIO_OUTPUT, (这是麒麟座V1.4的四个LED管脚其中的两个)

设置其中一个默认为高电平,另一个默认为低电平,User Label分别是LED1和LED4。

设置TIM1,启用中断

由于TIM1是挂在APB2总线上(如何判断当前计时器在哪个总线,文章最后会描述方法),查看时钟树我们知道APB2当前频率为72MHz,我们希望每秒钟发生2次中断,就把预分频系数设置为36000-1,自动重载值为1000-1,得到的计时器更新中断频率即为72,000,000/36000/1000=2Hz。此时定时为0.5秒,若要实现定时1秒,则将1000改为2000

 

点击任务栏的生成代码图标

8、生成工程,并添加相关程序;

 

首先,main.c程序中添加(放置于定时器配置之后)开启 TIM1计时中断;

  /* USER CODE BEGIN 2 */

    /*使能定时器1中断*/

    HAL_TIM_Base_Start_IT(&htim1);

  /* USER CODE END 2 */

 

 

其次,在 tim.c文件中添加定时器中断完成回调函数;

/* USER CODE BEGIN 1 */

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){

    

    if (htim->Instance == TIM1){

        

        /* Toggle LED */

        HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);

        HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);

    }

}

/* USER CODE END 1 */


关键字:STM32cubeMX  stm32  定时器  LED闪烁

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic464734.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:MacOS下STM32CubeMX安装文件双击无反应的解决办法
下一篇:STM32开发笔记19: STM32CubeMX中定时器的配置方法

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32CubeMX 4 解锁UART模块

或者超出时间之后运行其他的代码。 我使用后两个函数。 先定义几个字符串。 然后调用函数: build,没有error;download, 完毕。找一根USB转TTL的线(串口线),用电脑测试是否好使。 串口线的TX接PB11(stm32的RX),串口线的RX接PB10(stm32的TX),接地。打开随便一个串口调试助手。 每按一次复位键,都会有一个chongzi出现在窗口中。 Send data 1234567 之后就会有while1里面的received了。 最后看一看硬件设备吧~ 
发表于 2019-07-22
STM32CubeMX 4 解锁UART模块

STM32CubeMX学习笔记——STM32H743窗口看门狗WWDG

STM32CubeMX配置STM32CubeMX版本:4.27.0配置流程:Pinout界面选择并开启需要的LED控制与按键输入引脚Clock Configuration配置时钟树Configuration界面配置System生成工程Pinout配置LED输出与KEY输入的PIN配置Clock Configuration配置开启系统时钟Configuration左侧主要系统功能的开启,或中间软件层功能的开启(如:RTOS、JPEG解码器,文件系统等)右侧是系统及外设模块的具体配置GPIO输入输出配置WWDG1分频:128窗口:64初始值:127开启中断只能在计数器在64~127之间进行复位,提前清零与超时都会导致rstNVIC开启
发表于 2019-07-22
STM32CubeMX学习笔记——STM32H743窗口看门狗WWDG

STM32CubeMX图形化配置软件使用

;                                                         2、BYPASS Clock Source(旁路时钟源),是指无需使用外部晶体时所需的芯片内部时钟驱动组件,犹如芯片内部的驱动组件被旁路了,也就是无需内部的驱动电路了,直接使用外部的时钟信号。3、Crystal/Ceramic
发表于 2019-07-19
STM32CubeMX图形化配置软件使用

STM32CubeMX+FreeRTOS实验---使用两个实例,共用一个task

, 0, 128);  LED2FlashHandle = osThreadCreate(osThread(LED2Flash), NULL);只是一个定义osThreadDef只是一个定义,把相关的内容绑在一起,不是函数。osThreadCreate才是一个函数。第二个参数就是*argument,对应StartLEDFlashTask函数的输入参数。因此在osThreadDef之前加入code。/*import user code,may be changed by stm32cubeMX*//*take attention */    uint16_t led1pin,led2pin
发表于 2019-07-18
STM32CubeMX+FreeRTOS实验---使用两个实例,共用一个task

STM32CubeMX学习笔记——FreeRTOS_任务挂起与继续

Githubhttps://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/FreeRTOS/Class02_SuspendResume简介任务挂起与继续的作用,用于暂停运行某些任务与继续运行某些任务。就像用视频播放器看电影的播放按键与暂停按键一样简单。在STM32CubeMX上配置FreeRTOS非常的简单,几乎不需要做任何操作,只需要勾选移植FreeRTOS就成功了,关于在非Cube上的RTOS配置文件内的相关内容,也在下方的Configuration栏中给好了所有的配置都可以在这里完成任务创建有别于在没有使用Cube下的创建方式,在Cube
发表于 2019-07-18
STM32CubeMX学习笔记——FreeRTOS_任务挂起与继续

STM32F401利用CubeMX实现按键中断翻转LED

:/******************************************************************************//* STM32F4xx Peripheral Interrupt Handlers                                    *//* Add here the Interrupt Handlers for the used peripherals.                  *//* For the available
发表于 2019-07-18
STM32F401利用CubeMX实现按键中断翻转LED

小广播

何立民专栏

单片机及嵌入式宝典

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

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