首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C函数返回0,即使调试器显示它返回1

C函数返回0,即使调试器显示它返回1
EN

Stack Overflow用户
提问于 2019-04-14 11:41:26
回答 1查看 118关注 0票数 0

我正在为MSP430微控制器编写嵌入式C代码,并且我被一个返回错误值的函数卡住了。当我使用debugger单步执行代码时,它显示函数应该返回1,但它在设置的int上返回0。

代码:

代码语言:javascript
复制
void sendUart(unsigned char string[], int length){
    if(string != 0){
        while(~responseAOK()){
            int BLEstatus = BLEReadyForData();  **//Function called here**

            if(BLEstatus){  **//At this point, BLEstatus is 0 (incorrect)
                unsigned int i;
                for(i=0;i<length-1;i++){
                    while(!(IFG2 & UCA0TXIFG)); 
                    UCA0TXBUF = string[i];  
                    send[sendIndex] = string[i];
                    sendIndex++;
                }
                sendIndex = 0;
            }

        }
    }
}

int BLEReadyForData(){
    if(P2DIR & BIT3){     
        P2DIR &= ~BIT3;         
    }

    if(P2IN & BIT3){ 
        return 1;  //debugger step-through reaches this line of code
    }
    else return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-14 22:08:32

您应该首先关闭优化。这使得单步调试变得令人困惑。例如,在IAR中

代码语言:javascript
复制
Project -> Options -> C/C++ Compiler -> Optimizations tab -> Level -> None
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55671793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档