搜索
bottom↓
回复: 13

马老师,我在你第二版书里看到一个波特率设置,是在不明白,您能在百忙之中出来帮助一下吗

[复制链接]

出0入0汤圆

发表于 2011-11-2 09:58:16 | 显示全部楼层 |阅读模式
首先是UASRT初始化:
void main()
{
UCSRA = 0x00;//这里为什么全部为0
UCSRB = 0xD8;
UCSRC = 0x86;


UBRRH = 0x00;
UBRRL = 0x19;

#asm("sei")
while(1)
{
putchar(0x55);

}

}
就上面那一句UCSRA = 0x00;//这里为什么全部为0
还有波特率的设置更看不懂:UBRRH = 0x00;
                          UBRRL = 0x19;

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

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2011-11-2 10:21:45 | 显示全部楼层
不可沉下去了

出0入0汤圆

发表于 2011-11-2 11:54:42 | 显示全部楼层
~~~~话说楼主的帖子俺只围观。。

不过貌似不是专门吸引眼球的了。。


UCSRA = 0x00; 俺不清楚为啥要这么弄,一般初始化只是设置 UCSRA的 U2X 和 MPCM 两个控制位,其它位都是状态位。
非多机通讯时,只需要设置 U2X,比如写成 UCSRA = 1<<U2X; 就可以了。

UBRRH = 0x00;
UBRRL = 0x19;

这两个是波特率寄存器,手册里有计算公式和表格,也不知你的时钟是多少。看手册吧。

哦,补充下,又忘记问楼主性别了。。。爆汗~~~

出0入0汤圆

发表于 2011-11-2 12:06:00 | 显示全部楼层
建议,打开数据手册【atmega16之类的】,PDF阅读器都有一个搜索,关键字就是这些寄存器名。例如,UCSRA。
找到UCSRA相关的介绍,每个位的定义,再结合你要实现的功能。设置对应的位。
Bit  7    6   5    4  3  2   1    0
     RXC TXC UDRE FE DOR PE U2X MPCM      UCSRA

&#8226; Bit 7 – RXC: USART Receive Complete
&#8226; Bit 6 – TXC: USART Transmit Complete
&#8226; Bit 5 – UDRE: USART Data Register Empty
&#8226; Bit 4 – FE: Frame Error
&#8226; Bit 3 – DOR: Data OverRun
&#8226; Bit 2 – PE: Parity Error
&#8226; Bit 1 – U2X: Double the USART Transmission Speed
&#8226; Bit 0 – MPCM: Multi-processor Communication Mode

是的,就是这样。把UBRRH UBRRL 这两个也找出来看看。

出0入0汤圆

发表于 2011-11-2 12:07:56 | 显示全部楼层
刚好也在学AVR

全0是看需要具体设置吧,看看数据手册不就知道了



(原文件名:QQ截图未命名.jpg)

出0入0汤圆

发表于 2011-11-2 16:37:33 | 显示全部楼层
就上面那一句UCSRA = 0x00;//这里为什么全部为0
还有波特率的设置更看不懂:UBRRH = 0x00;
                          UBRRL = 0x19;

============================================
如果是系统开机后的初始化,这个UCSRA = 0x00可以省掉的,因为AVR复位后这个寄存器就是全0。如果是程序当中的初始化,这句是为了保险,关闭发送、接收允许,是防止初始化(改变)波特率过程中,产生不不要的字符发送或接收。

后面两个寄存器的值是设定要使用的波特率,根据你的系统时钟和需要可以计算,我的教程中已经有对应的表格,可以查的。

LZ的问题,在于基本上没有串行接口的基本概念,所以就是简单查手册或书上查表的问题也不理解。没有基础,看手册,看书也是看不懂的。

出0入0汤圆

 楼主| 发表于 2011-11-3 08:51:03 | 显示全部楼层
我明白,我能理解,就是在那个,如果UCSRA = 0x00的话,那么下面那一句不是没有用啦!
就是while(!(UCSRA&(1<<RXC))),因为UCSRA一直是0,那么即使再怎么相与也是0.
RXC的作用并不大

出0入0汤圆

发表于 2011-11-4 11:38:07 | 显示全部楼层
4楼的朋友已经把UCSRA寄存器每位的意义贴出来了。

RXC是“USART Receive Complete”的标志位,当USART接口收到一个数据帧后,硬件自动将该位置1的。

你是学什么专业的?基础的知识和观念太差的话,学这个非常吃力。

出0入0汤圆

 楼主| 发表于 2011-11-4 17:51:18 | 显示全部楼层
回复【8楼】machao
-----------------------------------------------------------------------
我是学会计的,但是对电子非常感兴趣

出0入0汤圆

发表于 2011-11-4 21:06:03 | 显示全部楼层
回复【9楼】tepaiyuan  
回复【8楼】machao
-----------------------------------------------------------------------
我是学会计的,但是对电子非常感兴趣
-----------------------------------------------------------------------
牛人啊!你个学会计的,对怎么钓男人多感点兴趣,相信收益会比对电子感兴趣的大

出0入0汤圆

发表于 2011-11-4 22:10:45 | 显示全部楼层
你的头像好熟悉啊,貌似在哪儿看到过

出0入0汤圆

 楼主| 发表于 2011-11-5 12:45:13 | 显示全部楼层
回复【10楼】qiangrui
----------------------------------------------------------------
超级恶心的男人,强烈建议莫老大封锁该恶心人的ID,呵呵…………

出0入0汤圆

发表于 2011-11-5 14:25:36 | 显示全部楼层
lz的帖子只围观。

出0入0汤圆

发表于 2011-11-10 13:45:42 | 显示全部楼层
mark~
同样问题~搞定~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 17:04

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

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