[STM8] 中断嵌套

[复制链接]
751|8
 楼主| dalong168 发表于 2020-12-7 22:15 | 显示全部楼层 |阅读模式


#pragma vector=0x14//串口1接收中断
__interrupt void UART1_RX_IRQHandler(void)
{   
  str=UART1_DR;
}


#pragma vector=0x19//TIM4计数溢出更新事件中断响应函数
__interrupt void TIM4_UPD_OVF_IRQHandler(void)
{
    num++;
    TIM4_SR = 0;
    while(1)//在定时器中设置死循环
         ;
}


main()
{................................
  ITC_SPR4=0xcf;//串口1中断软件优先级  次高
  ITC_SPR5=0x7f;//定时器4中断软件优先级 次低

...................................
}

为了提高串口的实时性,做了一个测试,进入TIM4中断死循环后,即使串口1的软件中断优先级高,也不能进入串口1中断,不知什么原因

香水城 发表于 2020-12-9 15:27 | 显示全部楼层
1、首先你UART中断能不能进;
2、你实际测试代码 跟你贴出的 是一样的吗?
643757107 发表于 2020-12-9 16:36 | 显示全部楼层
先确保单独的中断没问题。
wiba 发表于 2021-1-5 12:35 | 显示全部楼层
停掉time4可以进入串口中断吗
zljiu 发表于 2021-1-5 12:36 | 显示全部楼层
在tim中的中断加一点延迟试试呢
coshi 发表于 2021-1-5 12:38 | 显示全部楼层
是说的在中断里边有一个死循环吗
aoyi 发表于 2021-1-5 12:39 | 显示全部楼层
为什么要在中断里边有一个死循环呢
drer 发表于 2021-1-5 12:40 | 显示全部楼层
首选确认串口中断使能了没有
gwsan 发表于 2021-1-5 12:41 | 显示全部楼层
试试加不同长度的延时
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

185

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部