问题:
存在开机后初始化,在TIM3_Int_Init()里面,一打开允许中断函数TIM_ITConfig(),定时器立刻进入中断函数一次。只进一次。
初始化函数最后已经关闭定时器:
TIM_Cmd(TIM3, DISABLE); //暂关闭TIMx外设。将这个函数提到初始化最前面也没用。
解决方法:
总结:应该是TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure);产生了更新事件,只要将
TIM_ClearFlag(TIM5, TIM_FLAG_Update);
TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE); 放在TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure);的后面,就不会出现一开允许中断函数TIM_ITConfig(),定时器立刻进入中断函数一次的情况。
IM_Cmd(TIM5, ENABLE); 放前放后无所谓,他只是让计数器开始计数,只是放后面的话可能需要将计数器清零。
希望对:解决一开允许中断函数TIM_ITConfig(),定时器立刻进入中断函数一次;有帮助。
关键字:STM32F103 定时器中断 初始化
引用地址:
STM32F103的普通定时器中断问题
推荐阅读最新更新时间:2024-11-13 14:40
W5100与STM32F103接口电路原理图
本电路中选用直接总线接口模式,以最大限度地提高数据的传输速率。依托W5100完善的TCP/IP协议处理功能,使DSP在没有操作系统的支持下接入Internet网络,具有简单、可靠、价格低廉等优点。 W5100 与STM32F103接口电路原理图:
[单片机]
S7-200系列PLC自由通信口初始化及通信指令介绍
在该通信方式下,通信端口完全由用户程序所控制,通信协议也由用户设定。PC机与PLC之间是主从关系,PC机始终处于主导地位。PLC的通信编程首先是对串口初始化,对S7-200PLC的初始化是通过对特殊标志位SMB30(端口0)、SMB130(端口1)写入通信控制字,设置通信的波特率,奇偶校验位、停止位和字符长度。显然,这些设定必须与PC的设定相一致。SMB30和SMB130的各位及含义如下: 其中,校验方式:00和11均为无校验、01为偶校验、10为奇校验;字符长度:0为传送字符有效数据是8位、1为有效数据是7位;波特率:000为38400baud、001为19200baud、010为9600baud、011为4800baud、
[嵌入式]
STM32开发笔记76: 初始化RTC后死机的原因
单片机型号:STM32L053R8T6 项目开发中只要初始化RTC,则系统死机。其初始化步骤可参考日志:STM32开发笔记44:RTC驱动程序的移植。按照日志STM32开发笔记75: 使用STM32CubeMX点亮一个LED使用STM32CubeMX直接生成程序则运行正常。 分析原因在于,少移植了2个函数:HAL_RTC_MspInit和HAL_RTC_MspDeInit。这两个函数的实现非常简单,可以靠STM32CubeMX直接生成。 void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc) { __HAL_RCC_RTC_ENABLE(); HAL_NVIC_SetPrio
[单片机]
STM32F103学习记录-----GPIO篇
GPIO端口配置 32bit配置寄存器 GPIOx_CRL GPIOx_CRH 32bit数据寄存器 GPIOx_IDR GPIOx_ODR 32bit置位/复位寄存器 GPIOx_BSRR 16bit复位寄存器 GPIOx_BRR 32bit锁定寄存器 GPIOx_LCKR GPIO可以被配置成多种模式 输入方式 代码宏定义 浮空输入 GPIO_Mode_IN_FLOATING 上拉输入 GPIO_Mode_IPU 下拉输入 GPIO_Mode_IPD 模拟输入 GPIO_Mode_AIN 开漏输出 GPIO_Mode_Out_OD 推挽输出 GPIO_Mode_Out_PP
[单片机]
STM32 TIMER初始化步骤
1、使能定时器时钟: RCC_APB1PeriphClockCmd(); 例如: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); //开定时器3时钟 2、设置定时器的基本参数(计数方式、计数周期、分频系数等) 注:①计数方式有TIM_CounterMode_Up(向上计数)、TIM_CounterMode_Down(向下计数)等方式; ②分频系数(TIM_Prescaler)可以为1~65535之间的任意数; ③计数初值的计算:(计数周期 + 1) * (分频系数 + 1) / (计时器频率),定时器频率一般情况下都是默认的从AHB二分频之后再倍
[单片机]
移植ucosII到STM32F103ZE(二)
三、 系统uC/OSII简介及库文件介绍: 1. uC/OSII简介: uC/OS 内核基本可以分为任务调度,任务同步和内存管理三部分: 任务调度 ucosii为保证实时性,给每个任务分配一个不同的优先级。当发生任务切换时,总是切换到就绪的最高优先级任务。有2种情况会发生任务切换。 1.任务等待资源就绪或自我延时; 2.退出中断; 情况1可以理解为任务主动放弃cpu的使用权。情况2可以理解为中断后,某种资源可能就绪了,需要任务切换。 需要注意的是SysTick中断,这个中断是os的 心跳 ,必须得有。这样就使得cpu会发生周期性地任务切换。由于ucosii 不支持时间片轮转调度,因此在该中断中必须做的工作仅有
[单片机]
学习ARM过程中的堆栈初始化详解
1、寄存器R13在ARM指令中常用作堆栈指针 2、对于R13寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。采用以下的记号来区分不同的物理寄存器: R13_ mode 其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。 3、寄存器R13在ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。由于处理器的每种运行模式均有自己独立的物理寄存器R13,在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运
[单片机]
avr单片机定时器0溢出中断程序
2014年2月17日22:26:32 芯片名称: AVR (艾特梅尔公司)mega16A 微控制器芯片; 开发板: 自主研发的 YF-A1芯片开发板; (YF :是本人名字缩写 ) 第53次试验,用逻辑分析仪捕捉,输出于IO口的数字,脉冲信号,脉冲信号宽度:1.5~1.8微妙,每9~11个脉宽1.5us的信号时序中,夹杂着一个脉宽位为3微妙的高脉冲信号. 我用了好几个小时都计算不出定时器0内部的时钟频率........哪里出错了呢? 外部用12兆晶体整荡器; 我的计算结论是:定时器0内部频率为32khz ,但是这显然有问题. 定时器时钟为内部8分频 TCCR0=0X0
[单片机]