usart串口通讯例子.c

来自「请认真阅读您的文件包然后写出其具体请认真阅读您的文件包然后写出其具体」· C语言 代码 · 共 49 行

C
49
字号
/*****************************************************
CodeWizardAVR V1.24.8d Professional
Clock frequency     : 7.372800 MHz

波特率9600/8个数据位 /1个停止位 /无校验
实验板硬件设置
1: J5的2个跳线帽短接,使用外部晶振7.3728MHz(需要设置熔丝)
2: R和T分别插上跳线帽,使用MAX232,其他跳线开路
3: DB9接口连接到电脑
请配合串口调试软件SSCOM32或者comdebug进行调试
*/
#include <mega8.h> 

/*串口初始化函数*/
void Uart_Init(void) {
  UCSRB=0x18;                 //下面是3条语句是串口初始化语句
  UCSRC=0x06;
  UBRRH=0x00; 
  UBRRL=0x2F; 
}

/*数/*数据发送,查询方式*/
void uart_transmit(unsigned char i) {
 //PORTD |= (1 << PD2);      /*设置RS485为输出状态*/
 UDR = i;         /* 发送数据*/
 while (!(UCSRA & (1<<TXC)));    /* 等待发送缓冲器为空*/
 UCSRA |= (1 << TXC);      /*清除发送标志*/
 //PORTD &= ~(1 << PD2);      /*设置RS485为输入状态*/
}
/*数据接收,查询方式*/
unsigned char uart_receive( void ) {
 while (!(UCSRA & (1<<RXC)));    /* 等待接收数据*/
 return UDR;         /* 获取并返回数据*/
}


/*主函数*/
void main(void) {

	unsigned char temp;
	Uart_Init();
	
	while (1) {
		temp = Uart_Receive();		/*等待接收数据*/
		PORTB = ~temp;	   		/*显示低电平有效*/
		Uart_Transmit(temp);		/*发送收到的数据*/
		}
}

⌨️ 快捷键说明

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