ATmega16 编程寄存器不匹配

ATmega16 programing-registers mismatchs

我正在编程 ATmega16 我在设备管理器中选择了那个控制器(atmel studio 6.2)但是寄存器不匹配ATmega16 数据表中的寄存器。我正在使用 ICE 3 并尝试使用模拟器,但结果相同。 Register UCSRC 与其他控制器不同,不能写入,即使我将 MSB 设置为 one.

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

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

    FOSC/16/BAUD-1

  2. UCSRB

  3. 启用 RXENTXEN
  4. 根据您对stop bitparity bit
  5. 的要求,在UCSRC中设置适当的位

请参考下图: