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

📄 usart1_m128.c

📁 网卡驱动程序
💻 C
字号:
#include <string.h>

#include "Usart1_M128.h"

unsigned char RX_data[RX_SIZE]={0};   //串口接收缓冲区
unsigned char RX_data2[RX_SIZE]={0};  //串口接收缓冲区
volatile unsigned int iNum;                  //串口接收字符计数
unsigned char flg_Received=0;                //已接收一个卡号

void UART1_Init(void)
{
   UCSR1B = (1<<RXCIE1)| (1<<RXEN1) |(1<<TXEN1);   //允许串口发送和接收,并响应接收完成中断
   UBRR1L = BAUD;                                  //波特率为9600(7.3728MHz晶振)
   UBRR1H = 0;
   UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);               //8位数据+1位stop位, 异步模式
}

#pragma interrupt_handler UART1_Receive: iv_USART1_RX
void UART1_Receive(void)
{
unsigned char cRec;
	 
   cRec= UDR1;

   RX_data[iNum++]=cRec;	 
   
   //每接收RX_SIZE=6个字符显示一次
   if (iNum==RX_SIZE) 
   {
	  memcpy(RX_data2,RX_data,RX_SIZE);
	  flg_Received=1;	
	  iNum=0;  
   }  
   
   RX_data[0]=cRec;
   flg_Received=1;	   
}

void UART1_PutChar(unsigned char c)  //字符输出函数
{
   while (!(UCSR1A&(1 << UDRE1)));   //判断上次发送有没有完成
   UDR1 = c;
}

void UART1_Puts(unsigned char *s)
{
   while (*s)
   {
      UART1_PutChar(*s++);
   }
}

//串口输出字节
void UART1_PutBytes(unsigned char *s, unsigned char ilen)
{
unsigned char i;

   for(i=0;i<ilen;i++)
   {
      UART1_PutChar(*s++);
   }
}

⌨️ 快捷键说明

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