⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tuartlow.c.svn-base

📁 最新火热的CX32 源代码
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
   	}
}


/*@param pFmt is a string address
 *@param wVal is a print variable
 */
void Printf(Byte  *pFmt, Word wVal)
{
#ifndef _USE_STi7710_
    Byte ucBff; 
	Byte ucDisp;
    Bool bNotZero;
	Bool bHex;	
    Word wDivider;

    wDivider=10000;
    bNotZero=_FALSE_;
	bHex=_FALSE_;
    while( ucBff = *(pFmt++) )
    {
        if(ucBff == '%') // check special case
        {
            switch( *(pFmt++) ) // check next character
            {
                case 'x': // hexadecimal number
                case 'X':
                    wDivider = 0x1000;
                    bHex = _TRUE_;
                case 'd': // decimal number
                case 'i':
                    if(wVal)
                    {
                        while(wDivider)
                      	{
                      	    ucDisp = wVal/wDivider;
                            wVal -= ucDisp*wDivider;
                            if(ucDisp)
                          	    bNotZero=_TRUE_;

                            if(bNotZero)
                          	{
                          	    if (ucDisp>9)
                                    putchar((Byte)(ucDisp+55));
                                else
                                    putchar((Byte)(ucDisp+0x30));
                            }

                            if(bHex)
                          	    wDivider /= 0x10;
                            else
                          	    wDivider /= 10;
                        }
                    }
                    else
      	                putchar('0');
                    break;
            } // switch
        }
        else // general
            putchar(ucBff); // put a character
    } // while
#endif
}

/*@param pFmt is a string address
 *@param wVal1 is a print variable
 *@param wVal2 is a print variable
 */
void Printf2(Byte  *pFmt, Word wVal1, Word wVal2)
{
#ifndef _USE_STi7710_
    Byte ucBff; 
	Byte ucDisp;
    Bool bNotZero;
	Bool bHex;	
    Word wDivider;
	Byte ucParamNumFlag;

    ucParamNumFlag = 1;
	wDivider=10000;
    bNotZero=_FALSE_;
	bHex=_FALSE_;
    while( ucBff = *(pFmt++) )
    {
        if(ucBff == '%') // check special case
        {
            switch( *(pFmt++) ) // check next character
            {
                case 'x': // hexadecimal number
                case 'X':
                    wDivider = 0x1000;
                    bHex = _TRUE_;
                case 'd': // decimal number
                case 'i':
                    if(ucParamNumFlag == 1)
					{
					    if(wVal1)
                        {
                            while(wDivider)
                      	    {
                      	        ucDisp = wVal1/wDivider;
                                wVal1 -= ucDisp*wDivider;
                                if(ucDisp)
                          	        bNotZero=_TRUE_;

                                if(bNotZero)
                          	    {
                          	        if (ucDisp>9)
                                        putchar((Byte)(ucDisp+55));
                                    else
                                        putchar((Byte)(ucDisp+0x30));
                                }

                                if(bHex)
                          	        wDivider /= 0x10;
                                else
                          	        wDivider /= 10;
                            }
                        }
                        else
						{
						    putchar('0');
                        }
						ucParamNumFlag = 2;
						wDivider=10000;
						bNotZero=_FALSE_;
	                    bHex=_FALSE_;
                    }
					else if(ucParamNumFlag ==2)
					{
						if(wVal2)
                        {
                            while(wDivider)
                      	    {
                      	        ucDisp = wVal2/wDivider;
                                wVal2 -= ucDisp*wDivider;
                                if(ucDisp)
                          	        bNotZero=_TRUE_;

                                if(bNotZero)
                          	    {
                          	        if (ucDisp>9)
                                        putchar((Byte)(ucDisp+55));
                                    else
                                        putchar((Byte)(ucDisp+0x30));
                                }

                                if(bHex)
                          	        wDivider /= 0x10;
                                else
                          	        wDivider /= 10;
                            }
                        }
                        else
						    putchar('0');
                        break;
					}        
            } // switch
        }
        else // general
            putchar(ucBff); // put a character
    } // while
#endif
}

/*@param pFmt is a string address
 *@param wVal1 is a print variable
 *@param wVal2 is a print variable
 *@param wVal3 is a print variable
 */
void Printf3(Byte  *pFmt, Word wVal1, Word wVal2, Word wVal3)
{
#ifndef _USE_STi7710_
   	Byte ucBff; 
	Byte ucDisp;
    Bool bNotZero;
	Bool bHex;	
    Word wDivider;
	Byte ucParamNumFlag;

    ucParamNumFlag = 1;
	wDivider=10000;
    bNotZero=_FALSE_;
	bHex=_FALSE_;
    while( ucBff = *(pFmt++) )
    {
        if(ucBff == '%') // check special case
        {
            switch( *(pFmt++) ) // check next character
            {
                case 'x': // hexadecimal number
                case 'X':
                    wDivider = 0x1000;
                    bHex = _TRUE_;
                case 'd': // decimal number
                case 'i':
                    if(ucParamNumFlag == 1)
					{
					    if(wVal1)
                        {
                            while(wDivider)
                      	    {
                      	        ucDisp = wVal1/wDivider;
                                wVal1 -= ucDisp*wDivider;
                                if(ucDisp)
                          	        bNotZero=_TRUE_;

                                if(bNotZero)
                          	    {
                          	        if (ucDisp>9)
                                        putchar((Byte)(ucDisp+55));
                                    else
                                        putchar((Byte)(ucDisp+0x30));
                                }

                                if(bHex)
                          	        wDivider /= 0x10;
                                else
                          	        wDivider /= 10;
                            }
                        }
                        else
						{
						    putchar('0');
                        }
						ucParamNumFlag = 2;
						wDivider=10000;
						bNotZero=_FALSE_;
	                    bHex=_FALSE_;
                    }
                    else if(ucParamNumFlag == 2)
					{
					    if(wVal2)
                        {
                            while(wDivider)
                      	    {
                      	        ucDisp = wVal2/wDivider;
                                wVal2 -= ucDisp*wDivider;
                                if(ucDisp)
                          	        bNotZero=_TRUE_;

                                if(bNotZero)
                          	    {
                          	        if (ucDisp>9)
                                        putchar((Byte)(ucDisp+55));
                                    else
                                        putchar((Byte)(ucDisp+0x30));
                                }

                                if(bHex)
                          	        wDivider /= 0x10;
                                else
                          	        wDivider /= 10;
                            }
                        }
                        else
						{
						    putchar('0');
                        }
						ucParamNumFlag = 3;
						wDivider=10000;
						bNotZero=_FALSE_;
	                    bHex=_FALSE_;
                    }
					else if(ucParamNumFlag ==3)
					{
						if(wVal3)
                        {
                            while(wDivider)
                      	    {
                      	        ucDisp = wVal3/wDivider;
                                wVal3 -= ucDisp*wDivider;
                                if(ucDisp)
                          	        bNotZero=_TRUE_;

                                if(bNotZero)
                          	    {
                          	        if (ucDisp>9)
                                        putchar((Byte)(ucDisp+55));
                                    else
                                        putchar((Byte)(ucDisp+0x30));
                                }

                                if(bHex)
                          	        wDivider /= 0x10;
                                else
                          	        wDivider /= 10;
                            }
                        }
                        else
						    putchar('0');
                        break;
					}        
            } // switch
        }
        else // general
            putchar(ucBff); // put a character
    } // while
#endif
}
 
#ifdef _USE_STi7710_
SYSUARTSTRUCT  volatile s_SysUARTStruct;
UARTRECEIVESTRUCT  volatile s_UARTReceiveStruct;

void OnEventTransmit(void)
{
}

void SetUartPort(Byte port)
{
   ucUartPort=port;
   
}
void OnEventReceive(void)
{

   ReceiveUartCommand();

}

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -