?? 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;
/* 接收器與發(fā)送器使能*/
//UCSRB=(1<<RXEN)|(1<<TXEN);
UCSRB=BIT(4)|BIT(3);
/*設置傳輸格式*/
//異步,8位數(shù)據(jù),無奇偶校驗,一個停止位,無倍速
//UCSRC=(1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);
UCSRC=BIT(7)|BIT(2)|BIT(1);
}
//串口數(shù)據(jù)發(fā)送,查詢方式
void putc(unsigned char c)
{
/* 等待發(fā)送緩沖器為空 */
while (!(UCSRA&(1<<UDRE)));
/* 將數(shù)據(jù)放入緩沖器,發(fā)送數(shù)據(jù) */
UDR = c;
}
//串口字符串發(fā)送,查詢方式
void puts(unsigned char *s)
{
while(*s)
{
putc(*s);
s++;
}
putc('\n');
//return 1;
}
//串口數(shù)據(jù)接收,查詢方式
unsigned char getc(void)
{
/* 等待接收數(shù)據(jù)*/
while (!(UCSRA&(1<<RXC)));
/* 從緩沖器中獲取并返回數(shù)據(jù)*/
return UDR;
}
//串口接收數(shù)據(jù)存儲,存儲到數(shù)組中
void get_s(unsigned char *js,unsigned int num)
{
unsigned int i;
for(i=0;i<num;i++)
{
js[i]=getc(); //保存數(shù)據(jù)到數(shù)組里面
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -