usart.h

来自「avr单片机USART串口通讯程序」· C头文件 代码 · 共 64 行

H
64
字号
/*****************************************************
*	功能: USART串口接收传送功能模块
*	版本: V0.0
*	设计时间: 2007/12/25
*	设计人: cht
*	修改时间: 2007/12/25
*	修改人: 
*	说明:
*******************************************************/
#ifndef USART_H
#define USART_H

#include <avr/io.h>
#include <avr/interrupt.h>
#include "avr_m16.h"

#define BAUDRATE        	4800 //定义传送的波特率
#define PIN_RXD				0 		//PD0 RXD
#define PIN_TXD				1 		//PD1 TXD

/****************************************
	功能:初始化串口
	说明:
*****************************************/
void usart_init(void)
{

    //USART 4800 8n1  
    UCSRC = (1<<URSEL) | 0x06;//读写UCSRC都要置位URSEL

    UBRRL= (F_CPU/BAUDRATE/16-1)%256;
    UBRRH= (F_CPU/BAUDRATE/16-1)/256;
    UCSRA = 0x00;
    UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
    //使能接收中断,使能接收,使能发送
}

/****************************************
	功能:发送字符
	说明:
*****************************************/
void put_c(unsigned char c )
{
	while( !(UCSRA & (1<<UDRE)) );
	UDR=c;
}

/****************************************
	功能:发送字符串
	说明:
*****************************************/
void put_s(const  char *ptr)
{
	while (*ptr)
	{
		put_c(*ptr++);
	}
	put_c(0x0D);
	put_c(0x0A);  //结尾发送回车换行
}


#endif

⌨️ 快捷键说明

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