📄 serial.c
字号:
/****************************************Copyright (c)**************************************************
** Unversity of electronic technology and science of China
** school of electronic engineer
**
**--------------File Info-------------------------------------------------------------------------------
** File name: serial.c
** Last modified Date: 2006.10.29
** Last Version:
** Descriptions: serial part of command shell
**
**------------------------------------------------------------------------------------------------------
** Created by: wang zheng
** Created date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by: wang zheng
** Modified date:
** Version:
** Descriptions:
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "command_shell.h"
/*********************************************************************************************************
** 函数名称: Uart0_Init( )
** 功能描述: initial the uart0, baudrate 4800 ,n,8,1
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
**
** 作 者: wangzheng
** 日 期: 2006.11.02
**-------------------------------------------------------------------------------------------------------
** 修改人: wangzheng
** 日 期:
**-------------------------------------------------------------------------------------------------------
** 修改人: wangzheng
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Uart_Init(void)
{
TMOD = 0x20;//0010 0000 T/c方式2
TH1 = 0xf5;//初值f5 20M晶振 9600波特率时
TL1 = 0xf5;//
SCON = 0x50;//0101 0000 串口方式1 10位异步通讯
PCON = PCON|0x80;//SMOD置1,波特率=溢出率/16
TR1 = 1;
EA = 1;
ES = 1;
}
/*********************************************************************************************************
** 函数名称: Uart0_Put_Char
** 功能描述: put a char to uart0
** 输 入: char Data
** 输 出:
** 全局变量:
** 调用模块:
**
** 作 者: wangzheng
** 日 期: 2006.11.02
**-------------------------------------------------------------------------------------------------------
** 修改人: wangzheng
** 日 期:
**-------------------------------------------------------------------------------------------------------
** 修改人: wangzheng
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Uart_Put_Char( int8 Data )
{
SBUF = Data;
while(!TI);
TI=0;
}
/*********************************************************************************************************
** 函数名称: Uart0_Write(int8* ptdata)
** 功能描述: print strings to uart0
** 输 入: int8* ptdata
** 输 出:
** 全局变量:
** 调用模块: Uart0_Put_Char( )
**
** 作 者: wangzheng
** 日 期: 2006.11.02
**-------------------------------------------------------------------------------------------------------
** 修改人: wangzheng
** 日 期:
**-------------------------------------------------------------------------------------------------------
** 修改人: wangzheng
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Uart_Write( int8* ptdata )
{
while( *ptdata != 0 )
Uart_Put_Char ( *ptdata++ );
}
/*********************************************************************************************************
** 函数名称: Uart0_Get_Char()interrupt 4
** 功能描述: get a char from uart0, interrupt mode
** 输 入: none
** 输 出:
** 全局变量: rec
** 调用模块:
**
** 作 者: wangzheng
** 日 期: 2006.11.02
**-------------------------------------------------------------------------------------------------------
** 修改人: wangzheng
** 日 期:
**-------------------------------------------------------------------------------------------------------
** 修改人: wangzheng
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void Uart_Get_Char( void ) interrupt 4
{
if(RI==1)
{
RI = 0;
rec = SBUF;
if( (rec>=32) && (rec<=126) ) // rec is between 'space' to '~'
curr_sig = normal_char;
switch ( rec)
{
case 13 : curr_sig = cr; break;
case 8 : curr_sig = backspace; break;
default : break;
}
sig_renew = 1; // trig the FSM
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -