USART的初始化
发表:2023-08-29 12:06:13 阅读:75

USART的初始化,进行通信之前首先要对USART进行初始化。初始化过程通常包括波特率的设定、帧结构的设定以及根据需要使能接收器或发送器。对于中断驱动的USART操作,在初始化时首先要清零全局中断标志位(全局中断被屏蔽)。

重新改变USART的设置应该在没有数据传输的情况下进行。TXC标志位可以用来检验一个数据帧的发送是否已经完成,RXC标志位可以用来检验接收缓冲器中是否还有数据未读出。在每次发送数据之前(在写发送数据寄存器UDR前)TXC标志位必须清零。以下是USART初始化程序实例。例程采用了轮询(中断被禁用)的异步操作,而且帧结构是固定的。波特率作为函数参数给出。在汇编程序里波特率参数保存于寄存器rl 7:rl 6。

汇编代码例程:

USART Init :

;设置波特率

out UBRRH,rl7

out UBRRL,rl6

;接收器与发送器使能

idi rl6,(I<

out UCSRB,rl6

;设置帧格式:8个数据位,2个停止位

Idi rl6,(1<

out UCSRC,rl6

ret

C代码例程:

void USART_Init(unsigned int baud)

{

/*设置波特率*/

UBRRH=(unsigned char)(baud>>8):

UBRRL=(unsigned char)baud:

/*接收器与发送器使能*/

UCSRB=(1<

/*设置帧格式:8个数据位,2个停止位*/

UCSRCC=(1<

}

更高级的初始化程序格式作为参数、禁止中断等,然而许多应用程序使用固定的波特率与控制寄存器。此时初始化代码可以直接放在主程序中,或与其他I/O模块的初始化代码组合到一起。

 

更多信息推荐

各种二极管作用

激光的产生机理

激光二极管

半导体激光二极管

配置为SPl主机时

SPT从机模式时

SPl初始化和数据传输程序实例