پاسخ : USART
نه ، بازم نشد؛
ببینید این کدی هست که کدویزارد برای این حالتی که شما فرمودید که:
تولید میکنه :
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 2400
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0xCF;
اما کدی که شما نوشتید اینه :
UCSRA=0X00;
UCSRB=0X08;
UCSRC=0X86;
UBRRH=0X00;
UBRRL=0X67;
من میگم که UBRRL=0X67 با UCSRA=0X00 برای فرکانس 8 مگ همخونی نداره ! یعنی باید به صورت زیر باشه :
UCSRA=0x02;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
در ضمن من بازم میگم که از یک کریستال استاندارد خارجی استفاده کنید بهتره !
نه ، بازم نشد؛
ببینید این کدی هست که کدویزارد برای این حالتی که شما فرمودید که:
من نرخ اطلاعاتو 4800گرفتم که تو این حالت U2X=0است
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 2400
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0xCF;
اما کدی که شما نوشتید اینه :
UCSRA=0X00;
UCSRB=0X08;
UCSRC=0X86;
UBRRH=0X00;
UBRRL=0X67;
من میگم که UBRRL=0X67 با UCSRA=0X00 برای فرکانس 8 مگ همخونی نداره ! یعنی باید به صورت زیر باشه :
UCSRA=0x02;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
در ضمن من بازم میگم که از یک کریستال استاندارد خارجی استفاده کنید بهتره !
دیدگاه