找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

关于中断处理的问题???

[复制链接]
跳转到指定楼层
楼主
fan168968 发表于 2014-4-16 21:11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了一段程序{                                mm();    //配置中断,当UART0接到8字节数据时产生中断
                                while(m!=0);  //当接到UART1的数据时m=0
                        }

就是说这个程序在未接到uart1的数据时m一直是1一直执行死循环,当UART0接到8字节数据时,触发中断,执行中断处理函数。这样设置按道理没问题,但是实际运行确有问题:就是假如UART1没接到数据时,就算UART0接到8字节的数据,也不会执行中断处理函数;但是,当UART1周期性的一直有数据接到时,即程序可以跳出死循环时就可以在UART0接到数据时执行中断函数,为什么呢???不是中断条件成立就去执行中断函数吗???为什么不跳出这个死循环就无法中断呢???
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具 举报

沙发
a_ziliu 发表于 2014-4-28 17:55:12 | 只看该作者
請把你的程序貼上來
回复 支持 反对

使用道具 举报

板凳
 楼主| fan168968 发表于 2014-4-29 09:20:23 | 只看该作者
a_ziliu 发表于 2014-4-28 17:55
請把你的程序貼上來

DrvWDT_Close ();               
pzuart0();            
UART0->FCR.RFITL=2;               
DrvUART_EnableInt(UART_PORT0,DRVUART_RDAINT,UART0HANDLE);         //设置按键中断子函数               
ct_init(); //次调初始化子函数
pzuart1();
UART1->FCR.RFITL=1;                 //4字节中断
UART1->MCR.LEV_RTS = 0;         //485接收模式       
while(UART1->ISR.RDA_IF==0);           //==0表明接到新数据!空闲状态是1                        第一次查询                   
ct_communication();        /* 次调通信子函数
回复 支持 反对

使用道具 举报

地板
sunrise 发表于 2015-11-6 16:47:32 | 只看该作者
中断入口函数会不会错了
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU