OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4814|回复: 2

程序容易卡死 怎么优化好呢

[复制链接]

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
发表于 2014-1-30 12:31:05 | 显示全部楼层 |阅读模式
原子哥 帮忙啊
我在主函数的循环里这样写
while(1)
{  
 if(key==0)
{
 CompFinger();
}
 if(key_add==0)
    {finger_entry1();
    jj=1;             }
 if(gRsLength==8&&jj==1)
 {     if(gRsBuf[4]==ACK_SUCCESS) 
    {finger_entry2();}
              }
           if(gRsLength==8) 
  {    ii=judge(8);                      
if(ii==17)
{    led=1;        }
if(ii!=17)
{    led=0;        }
}
感觉很容易卡死啊
就是相应操作(按下个按键后第二次在按就没反应了,有时要等段时间才有反应,有时不会再有反应了,要复位)。
会不会是中断问题呢
void USART2_IRQHandler(void)                 //串口2中断服务程序
{
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)  //接收中断
{
gRsBuf[gRsLength++]=USART_ReceiveData(USART2);//(USART1->DR); //读取接收到的数据    
       }                                                  

USART_ClearITPendingBit(USART2, USART_IT_RXNE);
     } 
这是中断
求大神帮忙啊
___诺现在就觉得失望无力,未来那么远该怎么扛。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2014-1-30 12:59:55 | 显示全部楼层
这么多if和标号…主程序逻辑再优化优化…仿真下就知道卡在哪了
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

47

主题

146

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2013-8-8
在线时间
0 小时
 楼主| 发表于 2014-2-3 10:15:03 | 显示全部楼层
回复【2楼】745021926:
-----------------------------好的
___诺现在就觉得失望无力,未来那么远该怎么扛。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 22:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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