STM32F030K6的TIM1定时功能不工作
下面的2个函数在TIM3,TIM14,TIM16运行(定时功能)都没问题,但改用在TIM1的定时功能的话,整个程序不工作,查不出来原因void TIM1_Init()
{
RCC->APB2ENR|=1<<11; //TIM1时钟使能
TIM1->ARR=24000; //定时500us
TIM1->PSC=0; //1分频(0+1)
TIM1->EGR = 0x01; //允许产生更新事件
TIM1->DIER|=1<<0; //允许更新中断
TIM1->DIER|=1<<6; //允许触发中断
TIM1->CR1|=0x01; //使能定时器1
NVIC->ISER|=1<<13;
}
/***********************************
* 名称: TIM1_IRQHandler()
* 功能: TIM1溢出中断服务子程序
* 入口参数: 无
* 出口参数: 无
* 说明: 产生1K方波
************************************/
void TIM1_IRQHandler(void)
{
if(TIM1->SR&0X0001) //溢出中断
{
if((GPIOA->ODR&(1<<6))!=(1<<6))PWM1_high;
elsePWM1_low;
}
TIM1 ->SR&=~(1<<0); //清除中断标志位
}
有没有仿真器,看看定时中断会不会进 用仿真器查过,进不了void TIM1_IRQHandler(void)函数
定时器1中断要打开MOE输出,在刹车和死区寄存器里 连第1条指令都不执行,这么怪的。PCLK=HCLK=48Mhz int main(void)
{
Stm32_Clock_Init(); //系统时钟设置(最大48MHZ)
SysTick_init(); //滴答定时器初始化
TIM1_Init(); //TIM1定时器初始化
TIM3_Init(); //TIM3定时器初始化
TIM14_Init(); //TIM14定时器初始化
TIM16_Init(); //TIM16定时器初始化
GPIO_init(); //IO口初始化
buz_set(1,20); //上电响1声
while(1)
连第1个函数Stm32_Clock_Init()都不执行啊 多谢netlhx,加了MOE(见下),还是不行,但执行TIM1_Init();函数就死在那里不动,不往下走啊
void TIM1_Init()
{
RCC->APB2ENR|=1<<11; //TIM1时钟使能(一定在这里设置)
TIM1->ARR=24000; //定时500us
TIM1->PSC=0; //1分频(0+1)
TIM1->EGR = 0x01; //允许产生更新事件
TIM1->DIER|=1<<0; //允许更新中断
TIM1->DIER|=1<<6; //允许触发中断
TIM1->CR1|=0x01; //使能定时器1
NVIC->ISER|=1<<13; //允许TIM1中断允许
TIM1->BDTR |=1<<15; //打开MOE
} 现可以执行Stm32_Clock_Init() 和SysTick_init();但执行TIM1_Init()函数就死在那里不动
页:
[1]