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

📄 uart.c

📁 我自己编写的atmega16的485通讯的范例
💻 C
字号:
#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)
{
 	UBRR= 0x33;
	UCSRA =(1<<MPCM);
	/* 接收器与发送器使能*/
    UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<UCSZ2);
    /* 设置帧格式: 9 个数据位, 2 个停止位*/
    UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0)|(1<<UCSZ0)|(1<<UCSZ1);
	//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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -