AVR 单片机 UART 以查询、中断方式发送数
据
2012-10-24 20:47:17|分类:工作心得|字号订阅
/
****************************************************************************************
************************
* AVR 单片机 UART 以查询、中断方式发送数据
* 说明:测试环境 硬件 M16、开发平台 IAR for AVR V5.11B
****************************************************************************************
************************/
//----------------------初始化-------------------------------------------------------------------
void Uart_init(long int baud)
{
baud=mclk/16/baud-1; //波特率最大为 65K
UCSRB=0x00;
UCSRA=0x00; //控制寄存器清零
UCSRC=(0<<UMSEL)|(0<<UPM0)|(3<<UCSZ0); //选择 UCSRC,异步模式,
禁止校验,1 位停止位,8 位数据位
UBRRL=baud;
UBRRH=baud>>8; //设置波特率
UCSRB=(1<<TXEN)|(1<<RXEN)|(1<<RXCIE); //接收、发送使能,接收中断
使能
SREG|=(1<<7); //全局中断开放
}
//---------------------查询方式 发送--
start----------------------------------------------------------
/***********************************************************
*名 称:
*功 能:从串口 UART0 发送一字节
*入口参数:sendB:发送的单个字节
*说 明:
***********************************************************/
void Uart_sendB(uchar sendB)
{
while(!(UCSRA&(1<<UDRE))); //等待发送缓冲区为空
评论1