ATmega16编程寄存器不匹配

时间:2015-06-08 10:34:38

标签: c usart atmelstudio atmega16

我正在编程 ATmega16 ,我在设备管理器中选择了该控制器( atmel studio 6.2 ),但这些寄存器与ATmega16数据表中的寄存器不匹配。我正在使用ICE 3,我尝试使用模拟器,但结果相同。注册 UCSRC 与其他控制器不同,即使我将MSB设置为one,也无法在其中写入。

1 个答案:

答案 0 :(得分:1)

根据ATMEGA16的datasheet,不需要设置 UCSRC MSB ,因为其初始值为1。 当您使用UART时,您需要确保,

  1. 您正在设置正确的UBRRLUBRRH,根据控制器时钟使用以下公式:

    FOSC/16/BAUD-1

  2. RXEN启用TXENUCSRB

  3. 根据UCSRCstop bit
  4. 的要求,在parity bit中设置正确的位

    请参考以下图片:    enter image description here