搜索
bottom↓
回复: 3

允许SPI2中断就跑飞,帮忙看一下,谢谢

[复制链接]

出390入22汤圆

发表于 2021-2-6 17:45:27 | 显示全部楼层 |阅读模式
本帖最后由 liudingding 于 2021-2-7 10:14 编辑

下面是程序,允许中断就跑飞了,跳不到中断程序上,请问怎么解决呢?工程就这一个中断,查询方式能收到数据,我想查查中断时跳转的中断号,怎么查呢?

  SPI2->CR2 |= 1<<6;       //RXNE 接收缓冲区非空 中断使能         这句屏蔽就不跑飞了
  MY_NVIC_Init(2,2,SPI2_IRQn,2);//组2,抢占级为11(最低级),响应级为11(最低级)        


void SPI2_IRQHandler(void)           //执行不到这里
{
   u8 res;
         if(SPI2->SR & (1<<0))//读数据寄存器非空,即此时数据已接收,可读出
      {
         res = SPI2->DR;
         res++;
      }
}

出0入93汤圆

发表于 2021-2-6 19:04:09 | 显示全部楼层
u8 SPI2_ReadByte(void)
{                                          
        while((SPI2->SR&1<<0)==0);                //等待接收完一个byte

这是个查询哦,它和中断是互斥的。那么这一行永远无法到达下一行,因为一旦可以跳出循环了就会触发中断,压入堆栈,继续读下一字节,继续中断压栈,再继续,直到堆栈溢出程序跑飞

出390入22汤圆

 楼主| 发表于 2021-2-6 19:39:45 | 显示全部楼层
takashiki 发表于 2021-2-6 19:04
u8 SPI2_ReadByte(void)
{                                          
        while((SPI2->SR&1

改了还不行,问题是跳不到中断程序上,在中断程序处设置断点,到不了断点

出390入22汤圆

 楼主| 发表于 2021-2-7 11:30:15 | 显示全部楼层
sys.c有问题,用其它工程的该文件替换好了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 06:04

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表