完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
下面的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[0]|=1<<13; } /*********************************** * 名称: TIM1_IRQHandler() * 功能: TIM1溢出中断服务子程序 * 入口参数: 无 * 出口参数: 无 * 说明: 产生1K方波 ************************************/ void TIM1_IRQHandler(void) { if(TIM1->SR&0X0001) //溢出中断 { if((GPIOA->ODR&(1<<6))!=(1<<6)) PWM1_high; else PWM1_low; } TIM1 ->SR&=~(1<<0); //清除中断标志位 } |
|
相关推荐
7个回答
|
|
有没有仿真器,看看定时中断会不会进
|
|
|
|
用仿真器查过,进不了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[0]|=1<<13; //允许TIM1中断允许 TIM1->BDTR |=1<<15; //打开MOE } |
|
|
|
现可以执行Stm32_Clock_Init() 和SysTick_init(); 但执行TIM1_Init()函数就死在那里不动
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
991 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
970 浏览 2 评论
2080 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1177 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1599 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 09:56 , Processed in 0.851941 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号