我正在编程 ATmega16 ,我在设备管理器中选择了该控制器( atmel studio 6.2 ),但这些寄存器与ATmega16数据表中的寄存器不匹配。我正在使用ICE 3,我尝试使用模拟器,但结果相同。注册 UCSRC 与其他控制器不同,即使我将MSB
设置为one
,也无法在其中写入。
答案 0 :(得分:1)
根据ATMEGA16的datasheet,不需要设置 UCSRC 的 MSB ,因为其初始值为1
。
当您使用UART时,您需要确保,
您正在设置正确的UBRRL
和UBRRH
,根据控制器时钟使用以下公式:
FOSC/16/BAUD-1
从RXEN
启用TXEN
和UCSRB
UCSRC
和stop bit
parity bit
中设置正确的位
醇>
请参考以下图片: