AVR应用笔记 AVR单片机内核剖析 ATmega32 USART的初始化

ATmega32 USART的初始化

以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!

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

重新改变 USART 的设置应该在没有数据传输的情况下进行。TXC 标志位可以用来检验一个数据帧的发送是否已经完成, RXC 标志位可以用来检验接收缓冲器中是否还有数据未读出。在每次发送数据之前 ( 在写发送数据寄存器 UDR 前 )TXC 标志位必须清零。

以下是 USART 初始化程序示例。例程采用了轮询 ( 中断被禁用 )的异步操作,而且帧结构是固定的。波特率作为函数参数给出。在汇编程序里波特率参数保存于寄存器 r17:r16。当写入 UCSRC 寄存器时,由于 UBRRH 与 UCSRC 共用 I/O 地址,URSEL 位 (MSB) 必须置位。

mega32 USART初始化汇编代码例程
( ATmega32 USART初始化汇编代码例程 )

mega32 USART初始化C代码例程
( ATmega32 USART初始化C代码例程 )

Note: 1. 本代码假定已经包含了合适的头文件。

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

 相关AVR资料说明

可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535

 相关AVR型号资料

ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny26 ATtiny2313
ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32
ATmega64 ATmega128 ATmega162 ATmega169 ATmega8515 ATmega8535

ATmega32 USART的初始化

——