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

📄 carduart.cpp.bak

📁 基于单片机ATmega16制作IC card 。程序中包含数据的采集和通信。
💻 BAK
字号:
//cardUART.cpp : source file for the card UART
//

#include "card.h"
#include "cardUART.h"

/////////////////////////////////////////////////////////////////////////////
//cardUART

void uart_init(void)
{
  //19200
	UCSRB = 0x00;	//UCSR0B = 0x00; //disable while setting baud rate
    UCSRA = 0x00;	//UCSR0A = 0x00;  //Disable double 
    UCSRC = 0x06;	//UCSR0C = 0x06;
    UBRRL = 0x0c;	//UBRR0L = 0x0c;
    UBRRH = 0x00;	//UBRR0H = 0x00;
    UCSRB = 0x90;	//UCSR0B = 0x90;
}

 
ISR(SIG_USART_RECV)
{
	// TODO: Add your code here
 UDRBuff = UDR;
 
 if(UartReceive == UART_IS_RECEIVING)
 {
  RxBuff1[RxByteCounts] = UDRBuff;
  RxByteCounts++;
  if(RxByteCounts == 1)
  {
   RxPayloadLength = UDRBuff;
   RxCheckSum += UDRBuff;
  }
  else
  {
   if(RxByteCounts == (RxPayloadLength + 2))
   {
	UartReceive = UART_RECEIVE_ONE_PACKET;
	for(RxByteCounts = 0;RxByteCounts < RX_BUFF_LEN;RxByteCounts++)
	{
	 RxBuff[RxByteCounts] = RxBuff1[RxByteCounts];
	}
	RxCheckSum = 0x100 - RxCheckSum;
	if(RxCheckSum != UDRBuff)
	{
	 UartReceive = UART_RECEIVE;
	 //UartReceive = UART_RECEIVE_ERROR_PACKET;
	}
   }
   else
   {
    RxCheckSum += UDRBuff;
   }
  }
 } 
 else
 { 
  if(UartReceive == UART_RECEIVE)
  {
   if(UDRBuff == 0x55)
   {
    UartReceive = UART_IS_RECEIVING;
    RxByteCounts = 0;
	RxTimeOut = 0;
    RxCheckSum = 0;
   }
  }
 }
 //uart has received a character in UDR	
}


//ISR(SIG_USART_TRANS)
//{
	// TODO: Add your code here
	
//}

ISR(SIG_USART_DATA)
{
 // TODO: Add your code here
 wTxByteCounts++;
 if(wTxByteCounts < wTxByteNumber)
 {
  UDRBuff = TxBuff[wTxByteCounts];
  UDR = UDRBuff;
  if(wTxByteCounts > 1)
  {
   TxCheckSum += UDRBuff;
  }
 }
 else if(wTxByteCounts == (wTxByteNumber))
 {
  if(wTxByteNumber < 3)
  {
   UCSRB &= (~RE_UDRIE0 & ~RE_TXEN0);
  }
  else
  {
   UDR = 0x100 - TxCheckSum;
   UCSRB &= (~RE_UDRIE0 & ~RE_TXEN0);
  }
  bTxBuffLock = FALSE;
 }
 //else
 //{
  //UCSR0B &= (~RE_UDRIE0 & ~RE_TXEN0);
 //}
}

⌨️ 快捷键说明

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