IAR For AVR USART 应用

 

#include <iom16.h>
#define uchar unsigned char
#define uint unsigned int

//###########################################################
/*串口初始化函数*/
void Uart_Init(void)
{                        
   UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); //允许发送和接收
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //8位数据位+1位停止位

UBRRH=0x00;                                              //设置波特率寄存器低位字节
        UBRRL=47;                                //9600    //设置波特率寄存器高位字节

DDRD_Bit1=1;                            //配置TX为输出(很重要)
}
//###########################################################
/*发送一个字符数据,查询方式*/
void Uart_Transmit(uchar data)
{
     while(!(UCSRA&(1<<UDRE)));  
   //while(UCSRA_UDRE==0);   /* 等待发送缓冲器为空*/
UDR = data;                         /* 发送数据*/
}
//###########################################################
//发送一串数据 带回车符
void Uart_Puts(uchar *str)
{
while(*str)
         {
    Uart_Transmit(*(str++));
}
Uart_Transmit(0x0a);//回车换行
Uart_Transmit(0x0d);
}
//###########################################################
//发送一串数据 不带回车符
void Uart_Put(uchar *str)
{
while(*str)
         {
    Uart_Transmit(*(str++));
}
}
//###########################################################
/*数据接收,查询方式*/
unsigned char Uart_Receive( void ) {

while (!(UCSRA & (1<<RXC)));   /* 等待接收数据*/
return UDR;    
}
//###########################################################

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值