?? usb.c
字號(hào):
#include<iom162v.h>
// 函 數(shù) 原 形 說 明
void uart1_init(void);
void uart1_send(unsigned char);
unsigned char uart1_rev(void);
//串口通信初始化設(shè)置
//1. 波特率設(shè)定
//2. 幀結(jié)構(gòu)設(shè)定
//3. 接收和發(fā)送允許控制
//******************************************
//*名稱: uart1_init
//*功能: 串口1初始化
//******************************************
void uart1_init(void)
{
// Fosc頻率為16.0000Mhz
// 波特率設(shè)定為19200bps +/-0.2%
UBRR1H=0x00;
UBRR1L=0x33;
// 8位數(shù)據(jù)+無奇偶校驗(yàn)+1位STOP
UCSR1C=(1<<URSEL1)|(1<<UCSZ11)|(1<<UCSZ10);
// 允許收發(fā),接收完成后中斷
UCSR1B|=(1<<RXCIE1)|(1<<TXEN1)|(1<<RXEN1);
}
//******************************************
//*名稱: uart1_send()
//*功能: 串口1發(fā)送數(shù)據(jù)
//******************************************
void uart1_send(unsigned char data)
{
// 檢測(cè)是否可以發(fā)送,UDRE=1寄存器為空
while ( !( UCSR1A & (1<<UDRE1)) )
;
UDR1=data;
}
//******************************************
//*名稱: uart1_rev()
//*功能: 串口0接收數(shù)據(jù)
//******************************************
unsigned char uart1_rev(void)
{
// 檢測(cè)是否接收完成
while ( !(UCSR1A & (1<<RXC1)) )
;
// 返回接收數(shù)據(jù)
return UDR1;
}
//******************************************
//*名稱: uart1_intrev()
//*功能: 串口1中斷方式接收數(shù)據(jù)
//******************************************
#pragma interrupt_handler uart1_intrev:iv_USART1_RXC
void uart1_intrev(void)
{
asm("cli");
uart1_send(UDR1);
asm("sei");
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -