串口测试._c

来自「AVR学习开发 板」· _C 代码 · 共 50 行

_C
50
字号
/**************************************************************
     实验名称:串口通信演示实验
	     作者:王晓波
		 晶振:内部   8M
     接线方法:
	          1.PD0接RXD,PD1接TXD
			  2.打开串口调试助手
	 使用说明:
	         1.本程序能够测试串口数据发送与接收。发送采用
			 查询方式,接收采用中断方式,通信波特率为19200。
			 2.当上位机软件发送一串数据时,单片机收到后回送相同
			 的数据。
*****************************************************************/
	 
#include <iom8v.h>
#include <macros.h>
#pragma interrupt_handler uart_getchar:12//开启串口接收中断
void uart_init(void)
{
 	 UCSRB|=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);//发送使能,接收使能,接收中断使能
	 UBRRL=25;//波特率19200
	 UBRRH=0x00;
	 UCSRC|=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据,无检验,1个停止位
	 SREG=0x80;
}
void uart_putchar(char x)
{
 	 while (!(UCSRA&0x20))//查询发送区是否为空
	 ;
	 UDR=x; //发送数据 
}

unsigned char uart_getchar(void)//接收数据 
{
	 char y;
	 while (!(UCSRA&(1<<RXC)));
	 y=UDR;
	 uart_putchar(y);//把接收到的数据返回给上位机
	 //return UDR; 
}
void main()
{
	 DDRD=0x03;//打开串口端口
	 uart_init();//串口初始化
	 while(1)
	 {
	 ;
	 }
}

⌨️ 快捷键说明

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