uart.c

来自「avr单片机的ADC驱动程序」· C语言 代码 · 共 68 行

C
68
字号
#include 	<avr/io.h> 

#include 	<avr/interrupt.h>
#include <inttypes.h>
//#include 	<stdint.h>
//#include 	<stdlib.h>         
#include 	<string.h>  
//#include 	<stdio.h>


/*
	ADC in Free Running mode
	sum the eight times in each channel
	I(Young 13shao) finished!
*/
#define uchar unsigned char
#define uint  unsigned int

////////////////////////////////////////


/////////////////////////////////////////////////
void USART_Init(void )
{
/* 设置波特率*/
UBRR0H=0;		
	UBRR0L=47;//9600
/* 接收器与发送器使能 */
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
/* 设置帧格式: 8 个数据位, 2个停止位 */
UCSR0C = (1<<USBS0)|(3<<UCSZ0);
}

void USART_Transmit_bit( unsigned char data )
{
/* 等待发送缓冲器为空 */
while ( !( UCSR0A & (1<<UDRE0)) );
/* 将数据放入缓冲器,发送数据 */
UDR0 = data;
}
void USART_Transmit_str (unsigned char  *str)
{
	while (1) 
	{
		if (*str == '\0')	break;		// 遇到结束符,退出
		USART_Transmit_bit(*str++);			// 发送数据
	}
}

unsigned char USART_Receive_bit( void )
{
/* 等待接收数据 */
while ( !(UCSR0A & (1<<RXC0)) );
/* 从缓冲器中获取并返回数据 */
return UDR0;
}

void USART_Receive_str (unsigned char *s, int n)
{
	for ( ; n>0; n--)
	{
		*s++ = USART_Receive_bit();
	}
}



⌨️ 快捷键说明

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