当前位置: 首页 > news >正文

GD32(STM32)因为中断问题,导致不能进行程序 正常运行

项目中,之前定时器中断就用了个TIM2,但后来程序优化需要再加一个计数定时器TIM6,

    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;        
    
        // 开启定时器时钟,即内部时钟CK_INT=72M
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE);    
        // 自动重装载寄存器的值,累计TIM_Period+1个频率后产生一个更新或者中断
    TIM_TimeBaseStructure.TIM_Period=(1000-1);   //GENERAL_TIM_Period   (1000-1)  设置为5ms一次中断
      // 时钟预分频数
    TIM_TimeBaseStructure.TIM_Prescaler= 71;    
        // 时钟分频因子 ,没用到不用管
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;        
        // 计数器计数模式,设置为向上计数
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;         
        // 重复计数器的值,没用到不用管
        TIM_TimeBaseStructure.TIM_RepetitionCounter=0;    
      // 初始化定时器
    TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);
        //    NVIC_TIM6_Configuration();
    
        // 清除计数器中断标志位
    TIM_ClearFlag(TIM6, TIM_FLAG_Update);
      
        // 开启计数器中断
    TIM_ITConfig(TIM6,TIM_IT_Update,ENABLE);
        
        // 使能计数器
    TIM_Cmd(TIM6, ENABLE);
            NVIC_TIM6_Configuration();

常规配置,不可能会有出错。但是发现初始化上面的代码后,程序连main主函数都进不了。

因为我的程序 是STM32移值到GD32的,所以一直认为是配置上有差异,但结果并不是这样。

而是我在置置void TIM6_IRQHandler(void){//定时器1ms 中断函数的时候,没有加

        if(TIM_GetFlagStatus(TIM6, TIM_FLAG_Update)==SET)

和        TIM_ClearITPendingBit(TIM6 , TIM_FLAG_Update);  

中断并不是说进入主函数才触 发,单片机一旦运行,配置完成就开始工作。

http://www.lryc.cn/news/89949.html

相关文章:

  • 华为OD机试真题B卷 Java 实现【统计字符】,附详细解题思路
  • 深入理解设计原则之开闭原则(OCP)
  • 【学习随笔】
  • 【多路IO复用】select
  • cuda编程学习——基础知识介绍!干货向(三)
  • 30 VueComponent 事件的绑定
  • 作用域及作用域链
  • 深入解析Linux C/C++ 编程中的内存泄漏问题
  • 【爬虫第三章】 Python基础
  • 电力系统的虚假数据注入攻击和MTD系统研究(Matlab代码实现)
  • 【阿里云】阿里云OSS对象存储— 开通OSS服务、搭建OSS环境、快速入门
  • 代理对象Proxy是什么
  • 会话跟踪cookie和session
  • ACS Cent. Sci 2018 | 数据驱动的分子连续表征的自动化学设计
  • 安卓Termux搭建web服务器【公网远程手机Android服务器】
  • 【大数据之Hive】二、Hive安装
  • 三大特性之多态
  • 单调队列优化dp
  • 【低压配电漏电继电器660V/LLJ-100H/AC220V 中性点漏电保护 JOSEF】
  • [数据结构习题]栈——中心对称链
  • AMD Software Adrenalin Edition 23.5.1驱动发布,快速获取驱动
  • Visual Studio内引用Lua解释器,编译Lua源码,执行Lua脚本
  • 【赏】C语言迷宫游戏设计如何解决屏幕严重刷屏问题同时实现运行时间的显示
  • Spring Boot如何实现接口文档自动生成
  • 二进制概述-0day漏洞利用原理(1)
  • 加密与解密 调试篇 动态调试技术 (二)-常见断点
  • 【JavaScript】拾遗(5.25)
  • QMI8658 - 姿态传感器学习笔记 - Ⅲ
  • PHP+vue二手车交易信息网站系统
  • NTM中attr的用法