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

📄 uart.c

📁 电子称重的程序
💻 C
字号:
#include <head.h>
#include <config.h>
#include "uart.h"
uchar pdata UartWBuf[UART_WBUFLEN];
uchar pdata pUartWBufW=0,pUartWBufR=0;
uchar pdata UartRBuf[UART_RBUFLEN];
uchar  pdata pUartRbufW=0;

BOOL hadrxcom;
BOOL SendEndFlag=1;




 /**************************************************************************
*      函数原型:  void Uart_init(Ulong baud,char parity)
*      功    能: 串口初始化函数
*      入    口:  baud:波特率,parity:校验位
*************************************************************************/

void Uart_Init(ulong Baud,char Parity)
{
	ulong    temp;
	if(Parity) SCON=0xd0;
	else SCON=0x50;
	T2CON=0x30;
	temp=0x10000-(SYSCLK/32)/Baud;
	TH2=((uint)temp)>>8;
	RCAP2H=TH2;
	TL2=temp&0xff;
	RCAP2L=TL2;
	T2CON=0x34;
	D485WEN=FALSE;
	PS=1;      //
	ES=1;
	EA=1;
}

 /**************************************************************************
*      函数原型:void uart_int(void);
*      功    能:串口中断4
**************************************************************************/
void uart_int(void) interrupt 4
{
 if(_testbit_(TI))
  {
  if(pUartWBufR!=pUartWBufW)
  	{
		D485WEN=TRUE;
	   SBUF=UartWBuf[pUartWBufR++];
	   if(pUartWBufR>=UART_WBUFLEN)pUartWBufR=0;
  	}
  else {SendEndFlag=1;D485WEN=FALSE;}
  }
   if(_testbit_(RI))
  {
   if(SBUF==0x2)pUartRbufW=0;
   else if(SBUF==0x3)   hadrxcom=1;
   else if(!hadrxcom)UartRBuf[pUartRbufW++]=SBUF;
  }
}
   /**************************************************************************
 //以下为串口发送子程序,bit Uart_sendS(Uchar *wchar)为发送字符串,
  bit Uart_sendC(Uchar wchar)为发送单个字符
   bit Uart_sendN(long wnum,char dot)为发送数字
 *************************************************************************/
BOOL Uart_SendS(uchar *Wchar)
 {
	 uchar i=0;
	 for(i=0;Wchar[i]!='\0';i++)
	 {
	   Uart_SendC(Wchar[i]);
	 }
	   return 1;
 }
BOOL Uart_SendC(uchar Wchar)
{
D485WEN=TRUE;
if(SendEndFlag){SBUF=Wchar;SendEndFlag=0;}
else
{
 UartWBuf[pUartWBufW]=Wchar;
if(++pUartWBufW>=UART_WBUFLEN)pUartWBufW=0;
}
return 1;
}



⌨️ 快捷键说明

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