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

📄 uart.c

📁 aduc7026裸机程序
💻 C
字号:
#include "main.h"


void UartInit()
{
	GP1CON 	= 0x11;	 //SIN SOUT LINK TO P1.0,P1.1
	COMCON0 = 0x83;	 //SETTING TO ACCESS DIV0 AND DIV1
	COMDIV0 = 0x44;	 //baute rate at 19200 bps
	COMDIV1 = 0x0;
	COMCON0 = 0X03;	 //SET TO OUT DIV0 AND DIV1
}
/**************************************
 * 应用程序在uart口输出数据(查询方式)
 *************************************/
void SendByte(unsigned char Bdata)
{
    while(!(COMSTA0 & 0x40));
	COMTX = Bdata;
}
/*****************************************
 * User在PC串口终端输入数据 范围0x0 - 0xFF
 * 应用程序在uart口读入数据 (查询方式)
 *****************************************/
unsigned char GetData()
{
	unsigned char tmp = 0xFF;
	PrintStr("please input the command code:");
	while(!(COMSTA0 & 0x01));
	tmp = COMRX;
	SendHex(tmp);
	NewLine();
	return tmp;
}
/*******************************************************
 * 通过Uart输出十六进制数据,如:0xAA 范围(0x00 - 0xFF)
 *******************************************************/
unsigned char HexList[16] = {'0','1','2','3','4','5','6','7',
							 '8','9','A','B','C','D','E','F'};
void SendHex(int num)
{
	SendByte('0');
	SendByte('x');
	SendByte(HexList[num/16]);
	SendByte(HexList[num%16]);
}
/*************************
 * 串口终端输出数据
 * 数大小范围 0 - 99999 
 *************************/
void SendNum(int num)
{
    if(num >= 10){
		if(num >=100){
			if(num >= 1000){
				if(num>= 10000){
					SendByte(num / 10000 + 0x30);
					num = num % 10000;
				}
				SendByte(num / 1000 + 0x30);
				num = num % 1000;
			}
			SendByte(num / 100 + 0x30);
			num = num % 100;
		}
		SendByte(num / 10 + 0x30);
	}
	SendByte(num % 10 + 0x30);	
}
/****************************
 * out put a string
 ****************************/
void PrintStr(unsigned char *p)
{
    int i = 0;
	while( p[i] != 0){
	    SendByte(p[i]);
		i++;
	} 
}
/**************************
 * 换行
 **************************/
void NewLine()
{
	SendByte(0x0D);
	SendByte(0x0A);
}

⌨️ 快捷键说明

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