Здравствуйте! Пытаюсь отправить слово с МК Avr attiny2313 через com port и выловить его программой, пока что просто программой "терминал".
Прошу помощи! Почему присылаются какие-то арабские символы или что угодно, но не то, что я отсылаю?
Сейчас я думаю дело в частоте, но как бы я ее точно не пытался откорректировать, все равно присылается какая-то белиберда.
# define F_CPU 3993600UL
#include <avr/io.h>
#include <avr/iotn2313.h>
#include <avr/interrupt.h>
void USART_Transmit( unsigned char data );
void USART_Init (unsigned int baud);
void USART_Init (unsigned int baud)
{
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud; // 9600
UCSRB = (1<<RXEN)|(1<<TXEN); //|(1<<TXCIE)|(1<<UDRIE)
UCSRC = (1<<USBS)|(1<<UCSZ0); //|(1<<UPM1)|(1<<UPM0)
}
void USART_Transmit( unsigned char data )
{
while ( !(UCSRA & (1<<UDRE)) );
UDR = data;
}
int main(void)
{
//const unsigned int BAUDRATE = 9600;
//const unsigned int BAUDDIVIDER = ((F_CPU/(16UL*BAUDRATE))-1);
USART_Init(25);
while(1)
{
USART_Transmit('h');
USART_Transmit('e');
USART_Transmit('l');
USART_Transmit('l');
USART_Transmit('o');
USART_Transmit('1');
USART_Transmit('2');
USART_Transmit(0x01);
USART_Transmit(0x02);
USART_Transmit(0x0A);
USART_Transmit(0x0D);
}
}