📄 uart._h
字号:
/**********串口端口定义**********/
#define RxD PD0
#define TxD PD1
#define baudrate 9600 //波特率
#define F_CPU 8000000UL //定义晶振频率
void uart_init(void)
{
/*****RS232口线设置*****/
PORTD|=BIT(RxD)|BIT(TxD);
DDRD&=~BIT(RxD);
DDRD|=BIT(TxD);
/* 设置波特率*/
UBRRL=(F_CPU/baudrate/16-1)%256; //本设置波特率不加倍及U2X=0
UBRRH=(F_CPU/baudrate/16-1)/256;
/*U2X=1的设置波特率*/
//UBRRL= (F_CPU/BAUDRATE/8-1)%256;
//UBRRH= (F_CPU/BAUDRATE/8-1)/256;
/* 接收器与发送器使能*/
//UCSRB=(1<<RXEN)|(1<<TXEN);
UCSRB=BIT(4)|BIT(3);
/*设置传输格式*/
//异步,8位数据,无奇偶校验,一个停止位,无倍速
//UCSRC=(1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);
UCSRC=BIT(7)|BIT(2)|BIT(1);
}
//串口数据发送,查询方式
void putc(unsigned char c)
{
/* 等待发送缓冲器为空 */
while (!(UCSRA&(1<<UDRE)));
/* 将数据放入缓冲器,发送数据 */
UDR = c;
}
//串口字符串发送,查询方式
void puts(unsigned char *s)
{
while(*s)
{
putc(*s);
s++;
}
putc('\n');
//return 1;
}
//串口数据接收,查询方式
unsigned char getc(void)
{
/* 等待接收数据*/
while (!(UCSRA&(1<<RXC)));
/* 从缓冲器中获取并返回数据*/
return UDR;
}
//串口接收数据存储,存储到数组中
void get_s(unsigned char *js,unsigned int num)
{
unsigned int i;
for(i=0;i<num;i++)
{
js[i]=getc(); //保存数据到数组里面
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -