?? 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 + -