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

📄 uart_getput.c

📁 周立功公司的EasyARM1138资料
💻 C
字号:
#include  "UART_GetPut.H"
#include  "LM3S1138_PinMap.H"
#include  <hw_types.h>
#include  <hw_memmap.h>
#include  <hw_sysctl.h>
#include  <hw_gpio.h>
#include  <hw_uart.h>
#include  <sysctl.h>
#include  <gpio.h>
#include  <uart.h>
#include  <ctype.h>


#define  SysCtlPeriEnable       SysCtlPeripheralEnable


/***************************************************************************************************
功能:UART收发初始化
参数:无
返回:无
***************************************************************************************************/
void  UART_GetPutInit(void)
{
    SysCtlPeriEnable(SYSCTL_PERIPH_UART2);                      //  使能UART模块

    SysCtlPeriEnable(U2RX_PERIPH);                              //  使能RX所在的GPIO端口
    GPIOPinTypeUART(U2RX_PORT , U2RX_PIN);                      //  配置RX所在管脚为UART功能

    SysCtlPeriEnable(U2TX_PERIPH);                              //  使能TX所在的GPIO端口
    GPIOPinTypeUART(U2TX_PORT , U2TX_PIN);                      //  配置TX所在管脚为UART功能

    UARTConfigSet(UART2_BASE , 9600 , UART_CONFIG_WLEN_8 |      //  配置UART,波特率9600,数据位8
                                      UART_CONFIG_STOP_ONE |    //  停止位1
                                      UART_CONFIG_PAR_NONE);    //  无校验

    UARTEnable(UART2_BASE);                                     //  使能UART端口
}


/***************************************************************************************************
功能:通过UART发送1个字符
参数:c是要发送的字符
返回:无
***************************************************************************************************/
void  UART_Putc(const  char  c)
{
    UARTCharPut(UART2_BASE , c);
}


/***************************************************************************************************
功能:通过UART发送字符串
参数:s是要发送的字符串
返回:无
***************************************************************************************************/
void  UART_Puts(const  char  *s)
{
    char  c;

    for (;;)
    {
        c  =  *(s++);

        if (c  ==  '\0')
        {
            break;
        }

        UART_Putc(c);
    }
}


/***************************************************************************************************
功能:通过UART接收1个字符
参数:无
返回:接收到的字符
***************************************************************************************************/
char  UART_Getc(void)
{
    char  c;

    c  =  UARTCharGet(UART2_BASE);

    return(c);
}


/***************************************************************************************************
功能:通过UART接收字符串(要求输入的字符串以"\r\n"结尾)
参数:s     保存接收数据的缓冲区(只接收可打印字符,即ASCII码32~127)
      size  接收缓冲区限制长度
返回:实际接收到的有效字符数量(字符串长度)
***************************************************************************************************/
int  UART_Gets(char  *s ,  const  int  size)
{
    char  c;
    int   n  =  0;

    for (;;)
    {
        c  =  UART_Getc();                                      //  接收1个字符

        if ( c  ==  '\r' )                                      //  如果遇到回车符,则跳出
        {
            break;
        }

        if ( n  <  size )                                       //  如果小于长度限制
        {
            if ( isprint(c) )                                   //  如果接收到的是可打印字符
            {
                *(s++)  =  c;                                   //  保存接收到的字符到缓冲区
                n++;
            }
        }
    }

    *s  =  '\0';                                                //  添加字符串结束标志

    return(n);                                                  //  返回有效的字符数
}

⌨️ 快捷键说明

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