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

📄 console.c

📁 zigbee精简协议栈代码
💻 C
字号:
#include "Console.h"

//定义串口的波特率,停止位,校验位
#define baudRate	UART_BAUDRATE_19K2
#define stop_bit	UART_OPT_ONE_STOP_BIT
#define parity		UART_OPT_NO_PARITY
#define bits		UART_OPT_8_BITS_PER_CHAR
//串口初始化
void ConsoleInit(void)
{
	ENABLE_UART1(); 
	INIT_UART1(baudRate,stop_bit,parity,bits);
}
//************************************************

void ConsolePut(BYTE c)
{
#if defined(I_AM_END_DEVICE)
    while( !ConsoleIsPutReady() );
    UCSR1A &= ~BM(UDRE1);
    UDR1 = c;
#endif
}

void ConsolePutString(BYTE *s)
{
    BYTE c;
    while( (c = *s++) )
        ConsolePut(c);
	 
}

#ifdef I_AM_COORDINATOR
	void CoordPut(BYTE c)
	{
    while( !ConsoleIsPutReady() );
    UCSR1A &= ~BM(UDRE1);
    UDR1 = c;

	}
	void CoordPutString(BYTE *s)
	{
    BYTE c;
    while( (c = *s++) )
        CoordPut(c);
	}
#endif

void ConsolePutFlashString(PGM_P string_P){
	char *string = malloc(strlen_P(string_P)+1);
	if (string == NULL){
		ConsolePutString("malloc new char[] failed\n");
		return;
	}
	strcpy_P(string,string_P);
	ConsolePutString(string);
	free(string);
}

//************************************************
BYTE ConsoleGet(void)
{		
   	BYTE c;
   	UDR1 = 0; 


   	while( !ConsoleIsGetReady() );
   	c = UDR1;
   	return c;
}

BYTE ConsoleGetString(char *buffer, BYTE bufferLen)
{
    BYTE v;
    BYTE count;
    count = 0;

    do
    {
        if ( bufferLen-- == 0 )
            break;
		UDR1 = 0;
        
		while( !ConsoleIsGetReady() );
        v = UDR1;
        if ( v == '\r' || v == '\n' )
            break;
        count++;
        *buffer++ = v;
        *buffer = '\0';
    } while(1);
    return count;
}



⌨️ 快捷键说明

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