📄 uart.c
字号:
#include <iom8v.h>
#include <macros.h>
#include "confg.h"
/*****************************************/
//文件名:usart int .c
//功能:中断模式串口通信的应用
//目标MC U:ATYnega8
//晶振8MHZ
/*****************************************/
//通信波特率为9600(8位数据,无校验,1位停止位,无数据流控制)。
#define fosc 4000000 //晶振频率
#define baud 9600 //波特率
void putch(unsigned char c)
{
//等待写入UDR的字符被送到发送移位寄存器
while(!(UCSRA&(1<<UDRE)));
UDR=c;
}
//字符输入函数
unsigned char getch(void)
{
//等待接收字符
while(!(UCSRA&(1<<RXC))) ;
return UDR;
}
//字符串输出函数
int putss(char * s )
{
while(*s)
{
putch(*s);
s++;
}
return 1;
}
//含回车换行的字符串输出函数
void puts_hh(char *s)
{
while(*s)
{
putch(*s);
s++;
}
putch(0X0A);//回车
putch(0X0D);//换行
}
//UART初始化
void uart_init(void)
{
UCSRB=(1<<RXEN)|(1<<TXEN);
UBRRL=(fosc/16/baud-1)%256;
UBRRH=(fosc/16/baud-1)/256;
UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);//8位数据+1位停止位
//允许发送和接收,接收完成中断允许
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -