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

📄 uart.c

📁 一个arm7实例
💻 C
字号:
/*******************************Copyright (c)**********************************
***************************************By Z.Q.Yang****************************/

/******************************************************************************
*文件名:uart
*功能:串口通信服务函数
*头文件:"user.h","config.h"
*作者:Z.Q.Yang
*******************************************************************************/
#include"config.h"
#include"user.h"
/******************************************************************************
*函数名:Uart
*功能:串口通信函数
*入口参数:无
*出口参数:无
*作者:Z.Q.Yang
*******************************************************************************/
void    Uart(void)
{
        uint8 i;                            /*局部变量,用于保存接受的数据*/
        UART_MODE set;                      /*串口相关结构体变量*/
        static uint8 j=0,k=0;               /*局部静态变量,j为列数,k为行数*/
        if(subinit==1)                      /*第一次进入时一些必要的设置*/
        {
            set.bps=115200;                /*设置串口参数*/
            set.stp=1;
            set.datlen=8;
            set.parity=0xff;
            j=0;
            k=0;
            UARTInit(0,set);                /*初始化串口*/
            subinit=0;
            GUIClr();
            GUIPrintf(19,0,1,"This UART example!");
            GUIPrintf(j*5,k*8+10,1,"_");        /*设置光标*/
            LCDRefresh(GUIBuf);

        }
        
        i=UARTRevByte(0);               /*读取一个数据*/
        UARTSendByte(0,i);              /*原封不动发回*/
        if(i==8)                        /*为backspce时,退格*/
        {
            if(j==0)                    
            {
                j=24;
                GUIPrintf(0,k*8+10,1,"%c",' ');
                k--;
            }
            j--;
            
            GUIPrintf((j+1)*5,k*8+10,1,"%c",' ');
        }
        else 
        {        
           if(i=='\n'||i=='\r')         /*换行符换行*/
            {
                GUIPrintf(j*5,k*8+10,1,"%c",' ');
                k++;
                j=0;
            }
            else 
            {
                 GUIPrintf(j*5,k*8+10,1,"%c",i);
                 j++;
            }
            
        }
        if(j==25)
        {
            j=0;
            k++;
        } 
        if(k==6)
        {
            GUIYMov(0,127,10,57,8,0);       /*显示上移*/
            k=5;         
        }
        GUIPrintf(j*5,k*8+10,1,"_");    
        LCDRefresh(GUIBuf);      
}

⌨️ 快捷键说明

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