我试图在STM32L073中使用定时器外设但我有问题 . 我在STM32Cube中生成了设置代码,并且只使用了HAL API提供的函数 . 问题是定时器中断只发生一次,它应该始终发生溢出 . 我不知道计时器是否正在运行或我的设置是错误的(我相信它不应该是因为我使用Cube生成的代码) . 有人可以帮忙吗?

这在while while循环中调用

void MX_TIM7_Init(void){

TIM_ClockConfigTypeDef sClockSourceConfig;

TIM_MasterConfigTypeDef sMasterConfig;

htim7.Instance = TIM7;

htim7.Init.Prescaler = 00;

htim7.Init.CounterMode = TIM_COUNTERMODE_UP;

htim7.Init.Period = 00;

if (HAL_TIM_Base_Init(&htim7) != HAL_OK) {

Error_Handler();

}

sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;

sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;

if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK){

_Error_Handler(__FILE__, __LINE__);

}

}

BaseMspInit方法

void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle){

if(tim_baseHandle->Instance==TIM7){

/* USER CODE BEGIN TIM7_MspInit 0 */

/* USER CODE END TIM7_MspInit 0 */

/* Peripheral clock enable */

__HAL_RCC_TIM7_CLK_ENABLE();

/* TIM7 interrupt Init */

HAL_NVIC_SetPriority(TIM7_IRQn, 0, 0);

HAL_NVIC_EnableIRQ(TIM7_IRQn);

/* USER CODE BEGIN TIM7_MspInit 1 */

/* USER CODE END TIM7_MspInit 1 */

}

}

然后在主要我称之为

HAL_TIM_Base_Start_IT(&htim7);

这是这样做的

HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim){

/* Check the parameters */

assert_param(IS_TIM_INSTANCE(htim->Instance));

/* Enable the TIM Update interrupt */

__HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);

/* Enable the Peripheral */

__HAL_TIM_ENABLE(htim);

/* Return function status */

return HAL_OK;

}

我的中断处理程序调用PeriodElapsedCallback

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {

HAL_GPIO_TogglePin(led_GPIO_Port, led_Pin);

}

它编译没有错误没有警告,在调试器中我看到这个中断只触发一次然后从不 . 期待着答案

附:使用SEGGER Embedded Studio

java 定时器 的中断程序,STM32定时器中断相关推荐

  1. 51单片机外部中断实验 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管

    设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序). #inc ...

  2. c语言定时器定时1ms程序,STM32 Cubemx 配置定时器定时1mS

    最近才发现原来我把定时器里的配置参数代表的意义给搞混了,这里记录一下,防止以后自己忘记. 以建立一个定时1mS定时器为例: 1.先打开定时器 2.配置好时钟 3.配置定时器设置 重点来了,以前在这里我 ...

  3. linux uart中断程序,linux 串口中断实现

    我在linux系统下写的串口程序,需要实时的读取串口来的数据,但串口来的数据又是不定时的,想用中断的方式响应,看了一些资料,总觉的还所有些不妥. 首先,select函数,他需要一直在while中检测读 ...

  4. 中断程序_ABB机器人中断程序详解(安川FANUC)

    ABB机器人中断程序详解 1.新建一个中断程序 test001,类型中断 TRAP hanmianshadiaoliao StopMove; SetDO DO04, 0; !Stop; StartMo ...

  5. STM32定时器中断

    目录 一.关于STM32定时器中断 1.定时器分类 2.通用定时器的功能特点 3.定时器中断的触发 4.定时时钟计算方法 二.CubeMX初始化配置 1.芯片选型(我们这里运用的STM32F103C8 ...

  6. M40 定时器 中断程序形象化理解

    框架与要点 编写单片机类的程序,最核心.最重要的是上面的框架. 硬件支持:单片机 软件框架 初始化代码 时钟配置 定时器配置 中断配置 功能代码 通过此框架我们会明白,初始化代码是重中之重.实际初始化 ...

  7. stm32 定时器初步

    今天学习STM32 的通用定时器:TIMx (TIM2.TIM3.TIM4 和 TIM5). 定时器比较复杂,功能繁多,这里我们就说最基本的计数功能. 1.定时器的时钟从哪里来? 定时器的时钟来源有 ...

  8. STM32学习--中断

    这里写目录标题 什么是中断? 中断的作用 中断的特点 STM32与中断 NVIC 中断通道 中断优先级 中断服务函数 SysTick中断(内核中断) SysTick中断函数 NVIC库函数 NVIC初 ...

  9. STM32定时器输入捕获

    5.STM32定时器输入捕获 前言: STM32定时器输入捕获简介 STM32的输入捕获可以用于捕获脉宽, 测量时间 . 例如超声波测距模块就是需要用输入捕获功能, 通过测量输入脉冲的高电平脉宽 , ...

最新文章

  1. TensorFlow神经网络集成方案
  2. RabbitMQ(三)发布确认
  3. 在ASP.NET Core中创建自定义端点可视化图
  4. 《Python Cookbook 3rd》笔记(4.15):顺序迭代合并后的排序迭代对象
  5. Android 系统(207)---Android各种Drawable讲解和demo实例
  6. DataBseDesign工作笔记005---将excel中的表导入到powerdesigner中
  7. 吴恩达机器学习7——支持向量机SVM
  8. Eigen教程(8)之Map类
  9. tcp协议及工作原理浅析_详解TCP/IP网络协议栈底层原理到徒手实现
  10. 511遇见易语言文本处理寻找文本
  11. 【深度】美俄机器人集群军事作战应用研究现状!三大关键技术体系分析
  12. 想成为“王者”的必备能力——领导力21法则
  13. 【号外】联手腾讯故宫试水“互联网+”
  14. webERP安装配置超详细
  15. HTTPS 中双向认证SSL 协议的具体过程
  16. 什么是索引?为什么需要索引?索引的优劣势?
  17. Qt 资源图片删除后,错误 needed by `debug/qrc_image.cpp'. Stop. 的终极解决办法
  18. Android应用全屏显示
  19. DenseFuse: A Fusion Approach to Infrared and Visible Images 阅读笔记
  20. 纪委正调查计算机学院院长,网曝湖北文理学院招办领导受贿 学院纪委:正在调查...

热门文章

  1. 初识MQ--异步通讯的优缺点
  2. Gateway网关-网关的cors跨域配置
  3. Spring-Cloud中的负载
  4. Spring源码(1)
  5. 集合元素处理(Stream方式)
  6. 多表查询中的一些概念
  7. C语言烧写C51单片机的线,51单片机烧写程序过程以及详细说明【图文】
  8. InfluxDB基本使用说明
  9. 无法访问python官网_python写的网站,云服务器经常无法访问
  10. mysql1577_使用Navicat for MySQL的1577错误解决办法