uart.c

来自「我自己编写的atmega16的adc的范例」· C语言 代码 · 共 50 行

C
50
字号
#include<iom16v.h>
#include<macros.h>
#pragma interrupt_handler	USART_Recive_Complete_handler:12
#pragma interrupt_handler	USART_Data_Register_Empty_handler:13
#pragma interrupt_handler	USART_Transmit_Complete_handler:14
void USART_Init(void)
{
 //{{WIZARD_MAP(UART)
    // crystal: 16M
	// Baud Rate: 9600
	// Character Size: 8-bit
	// Mode: Asynchronous
	// Parity: Disabled
	// Stop Bit: 1-bit
	UBRRL = 0x33;
	UBRRH = 0x00;
	UCSRA = 0x00;
	UCSRC = 0x86;
	UCSRB = 0x18;
	//UCSRB|=0X80;//开接收结束中断
	//UCSRB|=0X40;//开发送结束中断
    //UCSRB|=0X20;//开数据寄存器空中断
}
void USART_Transmit(unsigned char data)
{
   /* 等待发送缓冲器为空 */
   while ( !( UCSRA & (1<<UDRE)) );
  /* 将数据放入缓冲器,发送数据 */
  UDR = data;
}
unsigned char USART_Recive(void)
{
 	/* 等待接收数据*/
	while ( !(UCSRA & (1<<RXC)) );
	/* 从缓冲器中获取并返回数据*/
	return UDR;
}
void USART_Recive_Complete_handler(void)
{

}
void USART_Data_Register_Empty_handler(void)
{

}void USART_Transmit_Complete_handler(void)
{

}

⌨️ 快捷键说明

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