📄 usart._c
字号:
//***************************************************************************
#include <iom8v.h>
#include <macros.h>
#include "usart.h"
/*****************************************************************************
*
* Function name : USART_Init
*
* Returns : None
*
* Parameters : unsigned int baudrate
*
* Purpose : Initialize the USART
*
*****************************************************************************/
void USART_Init()
{
// Set baud rate (38.4k)EXT OSC = 3.6864M
UBRRH = 0x00;
UBRRL = 0x01;
UCSRB = (1 << RXEN)|(1<<TXEN)|(1 << RXCIE); //RXEN->enable usrt recieving;
// Set frame format : 8data, 1stop bits
UCSRC = (1<<URSEL) | (0 << USBS) | (3 << UCSZ0);
}
/*****************************************************************************
*
* Function name : Usart_Tx
*
* Returns : None
*
* Parameters : char data: byte to send
*
* Purpose : Send one byte through the USART
*
*****************************************************************************/
void Usart_Tx(char data)
{
while (!(UCSRA & (1<<UDRE)));
UDR = data;
}
void Usart_TxData(unsigned int iValue)
{
char data;
unsigned int iTemp;
iTemp = iValue;
data = (iTemp >> 8) & 0xff;
Usart_Tx(data);
data = iValue & 0xff;
Usart_Tx(data);
}
void Usart_Command(char *command, char num_bytes)
{
unsigned char J;
char ComCounter;
for (J = 0; J < num_bytes; J++)
{
Usart_Tx(command[J]);
}
}
/*****************************************************************************
*
* Function name : Usart_Rx
*
* Returns : char: byte received
*
* Parameters : None
*
* Purpose : Receives one byte from the USART
*
*****************************************************************************/
char Usart_Rx(void)
{
int iCounter;
char data;
iCounter = 0;
while (!(UCSRA & (1<<RXC)))
{
Delay(5);
iCounter++;
if (iCounter > 60000) break;
}
return UDR;
}
//*****************************************************************************/
#pragma interrupt_handler Usart_Rx_isr:12
void Usart_Rx_isr(void)
{
unsigned char data;
// Usart_Tx(UDR);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -