打印

stm32 串口中断

[复制链接]
2958|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zch952102|  楼主 | 2013-5-28 22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用IAR Embedded Workbench for ARM 6.10软件编写串口中断程序

设置STM32为串口接收中断,串口在接收到PC机数据后,产生中断,并将数据发回PC机。

将程序下载到STM32上全速运行的话,接收及返回给PC机的数据均是正确的。

现在我想看STM32串口中断的运行过程,所以采用单步运行方式,进入串口中断程序后,再单步运行至出串口中断,

此时程序不知运行到哪里去了。这是为什么?   我的中断程序很简单,如下:

void USART1_IRQHandler(void)
{

  asm("nop");  
  asm("nop");

  u8 t=USART1->SR;
  u8 i=USART1->DR;
  USART1->DR=i+1;
  u8 p=USART1->SR;
  asm("nop");  
  asm("nop");
  asm("nop");  
  asm("nop");
}

另外有个问题:

我查看DISASSEMBLY 窗口对上中断程序的译码时,没有看到有PUSH指令,其内容如下:


USART1_IRQHandler:
    0x800017c: 0xbf00         NOP
  asm("nop");
    0x800017e: 0xbf00         NOP
  u8 t=USART1->SR;
    0x8000180: 0xf8df 0x04b8  LDR.W     r0, ??DataTable10_1     ; USART1_SR
    0x8000184: 0x8800         LDRH      r0, [r0]
  u8 i=USART1->DR;
    0x8000186: 0xf8df 0x14b8  LDR.W     r1, ??DataTable10_2     ; USART1_DR
    0x800018a: 0x8809         LDRH      r1, [r1]
  USART1->DR=i+1;
    0x800018c: 0xb2c9         UXTB      r1, r1
    0x800018e: 0x1c4a         ADDS      r2, r1, #1
    0x8000190: 0xf8df 0x34ac  LDR.W     r3, ??DataTable10_2     ; USART1_DR
    0x8000194: 0x801a         STRH      r2, [r3]
  u8 p=USART1->SR;
    0x8000196: 0xf8df 0x24a4  LDR.W     r2, ??DataTable10_1     ; USART1_SR
    0x800019a: 0x8812         LDRH      r2, [r2]
  asm("nop");  
    0x800019c: 0xbf00         NOP
  asm("nop");
    0x800019e: 0xbf00         NOP
  asm("nop");  
    0x80001a0: 0xbf00         NOP
  asm("nop");
    0x80001a2: 0xbf00         NOP
}
    0x80001a4: 0x4770         BX        lr

麻烦高手指教

沙发
zch952102|  楼主 | 2013-5-28 23:13 | 只看该作者
上面有误,应该是在进入中断后,单步运行跳出中断,正常的话(我认为)应该是跳到中断发生前的下一行继续执行。但实际情况是单步出中断后,程序转到全速运行状态,且程序的运行速度慢下来啦(通过示波器观看主程序对STM32端口的操作,与一开始就全速运行比较,也就是不在中断程序中采用单步调节),为什么?

使用特权

评论回复
板凳
grasswolfs| | 2013-5-29 09:35 | 只看该作者
但实际情况是单步出中断后,程序转到全速运行状态---》主程序中加断点了么?

使用特权

评论回复
地板
zch952102|  楼主 | 2013-5-29 14:13 | 只看该作者
我试了,加断点的话,要较长时间运行断点处(相对于正常全速运行)

使用特权

评论回复
5
zch952102|  楼主 | 2013-6-2 19:28 | 只看该作者
各位高手未碰到这种问题吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

53

帖子

0

粉丝