搜索
bottom↓
回复: 4

AVR单片机串口通信时TXD,RXD端口方向设置的疑惑,请高手.....

[复制链接]

出0入4汤圆

发表于 2012-9-4 19:21:52 | 显示全部楼层 |阅读模式
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不能作用。划红线处是否多余了????,如果多余为什么还强调很重要??

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出50入0汤圆

发表于 2012-9-4 19:47:43 | 显示全部楼层
作为串口使用时,相应IO自动被配置为输入或输出,所以,不用对DDR设置。
但是,如果你设置方向的话,经过实际使用,也没有问题。
实际使用时,建议你不要设置DDR。

出0入4汤圆

 楼主| 发表于 2012-9-5 08:00:24 | 显示全部楼层
god-father 发表于 2012-9-4 19:47
作为串口使用时,相应IO自动被配置为输入或输出,所以,不用对DDR设置。
但是,如果你设置方向的话,经过实 ...

实际应用的时候我没设置,只是最近看书的时候发现有设置的,而且还标注为很重要,因此有点疑惑。书上说设置TXD为输出,RXD为输入,并上拉电阻可增加抗干扰性。

出50入0汤圆

发表于 2012-9-5 09:33:39 | 显示全部楼层
shuipaopao 发表于 2012-9-5 08:00
实际应用的时候我没设置,只是最近看书的时候发现有设置的,而且还标注为很重要,因此有点疑惑。书上说设 ...

既然是自动了,那书上的说明就是子虚乌有了。
我的串口一直是这样处理,没有任何问题。

出0入0汤圆

发表于 2013-7-14 11:21:56 | 显示全部楼层
shuipaopao 发表于 2012-9-5 08:00
实际应用的时候我没设置,只是最近看书的时候发现有设置的,而且还标注为很重要,因此有点疑惑。书上说设 ...

并上拉电阻可增加抗干扰性,请问是如何增强其抗干扰性的?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 01:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表