avr_单片机_串口通信_串行通讯_详细例程介绍

avr_单片机_串口通信_串行通讯_详细例程介绍

ID:15793787

大小:94.88 KB

页数:6页

时间:2018-08-05

avr_单片机_串口通信_串行通讯_详细例程介绍_第1页
avr_单片机_串口通信_串行通讯_详细例程介绍_第2页
avr_单片机_串口通信_串行通讯_详细例程介绍_第3页
avr_单片机_串口通信_串行通讯_详细例程介绍_第4页
avr_单片机_串口通信_串行通讯_详细例程介绍_第5页
资源描述:

《avr_单片机_串口通信_串行通讯_详细例程介绍》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、AVR系列单片机的串行通讯实例Atmega128有两个串口:USART0与USART1以USART0为例串口的初始化包括:传输模式的选择:同步还是异步,默认为异步模式,可通过选择USART控制和状态寄存器UCSR0C中的UMSEL位来选择,UMSEL为0,是异步模式.波特率的设置:通信的双方都必须有相同的波特率,波特率可以通过设置波特率发生寄存器UBRR0来确定,UBRR0为两字节16位的寄存器,可分为UBRR0H和UBRR0L.同时起作用的还有UCSR0A中的波特率加倍位UX2,当UX2为1时设置的波特率加倍.传输帧格式的设置:默认是8位数据位,一位停

2、止位发送接受的使能与中断:通过设置UCSR0B来根据需要选择接收或发送的使能和是否使用中断,对使用中断的USART操作,初始化前要关闭中断USART0的控制和状态寄存器有:UCSR0A,UCSR0B,UCSR0C,波特率寄存器有UBRR0,即UBRR0H和UBRR0L,数据寄存器为UDR01、初始化:设置波特率前,要关闭USART0的所有使用,包括使能和中断:UCSR0B=0B00000000;//关闭USART02、设置UCSR0A:UCSR0A能写的有Bit0,Bit1,Bit6,其他5位为状态位.我们一般使用的有Bit1-U2X0,当这一位为1时,

3、波特率的分频因子从16降到8,能够有效的将异步通信模式的传输速率加倍,但是这一位仅对异步操作有影响,使用同步操作时应将此位清零.UCSR0A=0B00000000;//不使用倍速发送3、设置UCSR0C:Bit6-UMSEL0:USART0的模式选择,0为异步模式,1为同步模式Bit5:4-UPM01:0:奇偶校验模式,00禁止,01,保留,10偶校验,11,奇校验Bit3-USBS0:停止位的选择,0停止位为1bit,1停止位为2-bitsBit2:1-UCSZ01:0:字符长度,当UCSZ02为0时,00表示5位,01表示6位,10表示7位,11表示

4、8位.当UCSZ02为1时,11表示9位.(UCSZ02为UCSR0B里的一位寄存器)eg:UCSR0C=0B00000110//异步模式,禁止奇偶校验,停止位为1位,数据位为8位4、设置UBRR:UBRR的设置和这些参数有关:U2X0,CPU频率,波特率当U2X0为0时,即异步正常模式下,UBRR的计算公式:1、U2X=0时的公式计算UBRR0L=(F_CPU/BAUDRATE/16-1)%256;UBRR0H=(F_CPU/BAUDRATE/16-1)/256;2、U2X=1时的公式计算UBRRL=(F_CPU/BAUDRATE/8-1)%256;U

5、BRRH=(F_CPU/BAUDRATE/8-1)/256;//也可根据数据手册的[波特率设置的例子]查得//UBRRL=0x2F;//setbaudratelo//UBRRH=0x00;//setbaudratehi设置一般会有误差,误差计算方法为:Error[%]=(BaudRate_ture/BaudRate-1)*100%;5、然后就是设置UCSR0B:Bit7-RXCIE0为接收结束中断使能,Bit6-TXCIE0为发送结束中断使能,Bit4-RXEN0为接收使能,Bit3-TXEN0为发送使能.一般情况下,接收使用中断方式,所以使用接收结束中

6、断使能.UCSR0B=0B10011000//发送接收使能,接收结束使能还一种写法是UCSR0B

7、=(1<

8、(1<

9、(RXCIE0);如果更熟练,可以直接以10进制活16进制来设置这些寄存器:UCSR0B=0x98;或者UCSR0B=152;串口的初始化函数:voiduart_init(void)//串口0初始化{UCSR0B=0x00;//disablewhilesettingbaudrateUCSR0A=0B00000000;//Bit1为1则倍速发送U2X=0UCSR0C=0x06;//B00000110//奇偶模式无,

10、八位数据位,一位停止位UBRR0L=103;//B00011001波特率:9600BpsUBRR0H=0x00;//误差率:0.156%UCSR0B=0x98;}初始化之后就是对USART0进行读写了.UCSR0A的Bit5-UDRE0标志指出发送缓冲器UDR0是否准备好接收新数据,UDRE0为1说明缓冲器为空,可以接收新数据,UDRE0标志也可用来产生寄存器空中断.复位后的UDRE0置位,表明发送器已经就绪:当UDRE0为1时!(UCSR0A&(1<

11、A&(1<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。