完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
以下为测试代码,但是捕获中断进不去,不知道什么原因,求助大神,看看哪里设置有问题
#include void timer1Init(void) { // asm("sim"); // 关全局中断 TIM1_CR1=0x00; //关闭定时器 TIM1_IER=0x00; //关闭中断 TIM1_PSCRH = 0; TIM1_PSCRL = 15; //(fCK_CNT)等于fCK_PSC/( PSCR[15:0]+1)。 TIM1_CCER1 = 0x00; // TIM1_CCMR1 = 0x01; //配置为输入,IC1映射在TI1FP1上 TIM1_SR2 = 0X00; //清中断标志 TIM1_CCER1 = 0x03; //cc1配置为输入 低电平或下降沿触发 TIM1_IER = 0x02; //允许捕获1中断 TIM1_CR1 |= 0x01; // // asm("rim"); // 开全局中断 } #pragma vector=TIM1_CAPCOM_CC1IF_vector __interrupt void TIM1_CAP_COM_IRQHandler(void) { TIM1_SR1 =~0x02;//清除中断标志 PB_ODR^=0x20; } void main( void ) { // int i,j; CLK_CKDIVR = (unsigned char)(~0x18);/*时钟复位*/ CLK_CKDIVR|= (unsigned char)0x00;/*设置时钟为内部16M高速时钟*/ PB_DDR|=0x20; PB_CR1|=0x20; PB_CR2|=0x00; PC_DDR = ~0x40; //PC6设置为输入 PC_CR1 = 0x40; //带上拉电阻输入 PC_CR2 = ~0x40; //禁止外部中断 Timer1Init(); asm("rim");//开全局中断 while(1); } |
|
相关推荐
1个回答
|
|
STM8S103F3P6捕获中断进不去的原因可能有以下几点:
1. 中断使能位未设置:确保你已经使能了捕获中断。在STM8S103F3P6中,捕获中断使能位位于TIM1_IER寄存器的CC1IE位。你需要将其设置为1以使能捕获中断。 2. 中断优先级设置不当:STM8S103F3P6的中断优先级需要正确设置。请检查你的代码中是否设置了正确的中断优先级。 3. 中断服务程序未正确配置:确保你的捕获中断服务程序(Capture Interrupt Service Routine, CISR)已经正确配置。在STM8中,CISR的入口地址是固定的,你需要在代码中跳转到相应的CISR。 4. 定时器配置问题:检查你的定时器配置是否正确。例如,确保你已经设置了正确的时钟源、分频器、自动重载寄存器等。 5. 全局中断使能位未设置:确保你已经使能了全局中断。在STM8S103F3P6中,全局中断使能位位于ITC_SPR3寄存器的CG3位。你需要将其设置为1以使能全局中断。 以下是修改后的代码示例,仅供参考: ```c #include void Timer1Init(void) { asm("sim"); // 关全局中断 TIM1_CR1 = 0x00; // 关闭定时器 TIM1_IER = 0x00; // 关闭中断 TIM1_PSCRH = 0; TIM1_PSCRL = 15; // (fCK_CNT)等于fCK_PSC/( PSCR[15:0]+1)。 // 设置捕获模式和输入信号 TIM1_CCMR1 = 0x70; // 捕获模式,输入信号 TIM1_CCER = 0x00; // 清除捕获/比较使能位 // 设置中断优先级 ITC_SPR3 = 0x03; // 设置TIM1捕获中断优先级为3 // 使能捕获中断 TIM1_IER |= TIM1_IER_CC1IE; // 使能定时器 TIM1_CR1 |= TIM1_CR1_CEN; } void Capture_ISR(void) interrupt 7 { // 捕获中断服务程序 // 清除中断标志位 TIM1_SR1 &= ~TIM1_SR1_CC1IF; // 重使能全局中断 asm("rim"); } ``` 请检查你的代码,确保以上几点都已正确设置。如果问题仍然存在,请检查硬件连接和外部信号是否正常。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1678 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1580 浏览 1 评论
1012 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
703 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1626 浏览 2 评论
1892浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
673浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
537浏览 3评论
556浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
524浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 19:54 , Processed in 0.742898 second(s), Total 49, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号