AVR单片机串口通信时TXD,RXD端口方向设置的疑惑,请高手.....
Atmega16初始化程序中void uart0_init(uint baud)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00; //控制寄存器清零
UCSRC=(1<<URSEL)|(1<<USBS)|(0<<UPM0)|(3<<UCSZ0); //选择UCSRC,异步模式,禁止
// 校验,2位停止位,8位数据位
baud=mclk/16/baud-1 ; //波特率最大为65K
UBRRL=baud;
UBRRH=baud>>8; //设置波特率
UCSRB=(1<<TXEN)|(1<<RXEN)|(1<<RXCIE); //接收、发送使能,接收中断使能
SREG=BIT(7); //全局中断开放
DDRD|=0X02; //配置TX为输出(很重要)}
划红线处设为输出,而数据手册中已规定:当使能了USART的发送器后,这个引脚被强制设置为输出,DDD1不能作用。划红线处是否多余了????,如果多余为什么还强调很重要?? 作为串口使用时,相应IO自动被配置为输入或输出,所以,不用对DDR设置。
但是,如果你设置方向的话,经过实际使用,也没有问题。
实际使用时,建议你不要设置DDR。 god-father 发表于 2012-9-4 19:47 static/image/common/back.gif
作为串口使用时,相应IO自动被配置为输入或输出,所以,不用对DDR设置。
但是,如果你设置方向的话,经过实 ...
实际应用的时候我没设置,只是最近看书的时候发现有设置的,而且还标注为很重要,因此有点疑惑。书上说设置TXD为输出,RXD为输入,并上拉电阻可增加抗干扰性。 shuipaopao 发表于 2012-9-5 08:00 static/image/common/back.gif
实际应用的时候我没设置,只是最近看书的时候发现有设置的,而且还标注为很重要,因此有点疑惑。书上说设 ...
既然是自动了,那书上的说明就是子虚乌有了。
我的串口一直是这样处理,没有任何问题。 shuipaopao 发表于 2012-9-5 08:00 static/image/common/back.gif
实际应用的时候我没设置,只是最近看书的时候发现有设置的,而且还标注为很重要,因此有点疑惑。书上说设 ...
并上拉电阻可增加抗干扰性,请问是如何增强其抗干扰性的?
页:
[1]