首页 > 解决方案 > 如何知道我应该使用哪种数据类型才能登录标签?

问题描述

我有两个不同的代码,第一个用作 TI 的模板来生成另一个代码。问题是关于未使用标签的登录,因为它们都有一个默认密码0000。现在我试图找出,为什么我可以使用模板代码成功登录标签,但不能使用我的?以下是这两个代码的两个快捷方式:

1- TI 的模板代码:(使用 TI 的 Code Composer Studio 软件进行调试

uint8_t Login_Password_Byte[4] = {0x00, 0x00, 0x00, 0x00}; /*defined as a global variable
void AskForPassword(void)
{    UART_sendCString("Default password (j/n)?: ");

    while(UART_Not_Recieved)
{

}
    UART_putNewLine();
    UART_Not_Recieved = true;
    if(RX == 0x6A)
    {
        Login_Password_Byte[0] = 0x00;
        Login_Password_Byte[1] = 0x00;
        Login_Password_Byte[2] = 0x00;
        Login_Password_Byte[3] = 0x00;
        UART_putByteDecimalValue(Login_Password_Byte[0]);
        UART_putByteDecimalValue(Login_Password_Byte[1]);

    }else{
    UART_sendCString("Please enter a valid 4 character password: ");

    while(UART_Not_Recieved)
    {

    }
    Login_Password_Byte[0] = RX;
    UART_Not_Recieved = true;
    while(UART_Not_Recieved)
        {

        }
    Login_Password_Byte[1] = RX;
    UART_Not_Recieved = true;
    while(UART_Not_Recieved)
        {

        }
    Login_Password_Byte[2] = RX;
    UART_Not_Recieved = true;
    while(UART_Not_Recieved)
        {

        }
    Login_Password_Byte[3] = RX;
    UART_Not_Recieved = true;
    UART_putNewLine();
    }
}

而我的看起来像这样:(使用 CVI Labwindows 软件)

//  Default LOGIN for new tags
            UINT8 LOGIN_Password_Byte[4] = {0x00, 0x00, 0x00, 0x00};
            LOGIN_Password_Byte[0]= 0x00;
            LOGIN_Password_Byte[1]= 0x00;
            LOGIN_Password_Byte[2]= 0x00;
            LOGIN_Password_Byte[3]= 0x00;
            
            //
            Fmt(cCommand,"%s<%s%c%c%c%c%s",LOGIN,LOGIN_Password_Byte[0],LOGIN_Password_Byte[1],LOGIN_Password_Byte[2],LOGIN_Password_Byte[3],ENDE);
            //Fmt(cCommand,"%s<%s%s",LOGIN,"abcd:ENDE");
            iResult = Befehl_Senden(cCommand,cAnswer);
            if(iResult == -1)
            {
                SetCtrlAttribute(sPanels.P_Hauptmenue, P_MAIN_LED_GLASS_IDEN, ATTR_CTRL_VAL, 0);
                Breakpoint();
            }
            if(iResult == TRUE)
            {
            SetCtrlAttribute(sPanels.P_Hauptmenue, P_MAIN_LED_LOGIN, ATTR_CTRL_VAL, iResult);
}

通常,如果 LOGIN 成功,我应该为 iResult 获得值 1 或 TRUE,但在这种情况下 iResult 为 false,即使变量在两个代码中具有相同的数据类型。我尝试了可以​​为 Fmt 函数格式化说明符 /i 为整数、c、x..) 但无济于事。对于解决问题的每一个帮助,我都会很高兴。提前非常感谢!

标签: tagsnfcrfidmsp430code-composer

解决方案


推荐阅读