ATMGA16的USART串口通讯问题,异步也需要XCK时钟?

2019-03-24 20:38发布

ATMGA16  USART串口通讯时使用异步正常模式,但是数据的接收和发送时需要XCK提供一个时钟,寄存器配置如下:(全局中断已使能)
UCSRA=0x02; //异步倍速模式
UCSRB=0x98; //允许发送接受中断和使能
UCSRC=0x8e; //8位数据,异步,2位停止位
UBRRH=0x00;
UBRRL=0x33;   //波特率位9600,4M晶振
资料上说只有同步模式XCK才使用,但我使用异步模式时发现只有在ISP烧录机连上时才能通讯,经查是连线时XCK提供了时钟,只要把XCK连上就能正常通讯,断掉就不行了。。。(新手求问啊) 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
s17701332
1楼-- · 2019-03-25 04:02
这次又检查了下,发现弄错了,是sck时钟,程序烧录的时候sck提供时钟,把sck插上时串口是通的,一旦把sck拔掉就不通了,我的寄存器配置没问题吧,谁教下啊?
s17701332
2楼-- · 2019-03-25 06:10
换了个板子试了下,发现居然没问题了,难道是硬件的问题?
jishuaihu
3楼-- · 2019-03-25 07:09
应该是吧,异步模式只需要玩为UART模块提供一个稳定的时钟就可以。没有用过你说的这个片子,具体的寄存器不明白,但是UART的原理都一样。都不需要同步时钟,只要UART模块有一个固定时钟并且两个UART波特率一样就可以了。

一周热门 更多>