logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Nawiązanie komunikacji między Atmega32 a PC przez RS232: krzaczki w terminalu

Werterror 04 Gru 2020 15:24 531 2
REKLAMA
  • #1 19089440
    Werterror
    Poziom 9  
    Dzień dobry,
    Staram się nawiązać komunikację między Atmega32 a PC poprzez RS232, ale co bym nie zrobił w terminalu otrzymuję krzaczki:
    "[00][00][00][00][00][00][00][00][00][00][00][00]..."
    Zabrakło mi pomysłów co mogę sprawdzić dlatego piszę tutaj.
    Poniżej kod programu.
    #include <avr/io.h>
    #include <util/delay.h>
    
    //USART
    void USART_Init(unsigned int baud);
    void USART_Transmit(unsigned char data);
    
    int main(void){
    
    	USART_Init(9600);
    	while(1){
    		USART_Transmit('b');
    		_delay_ms(1000);
    	}
    
    	return 0;
    }
    
    USART_Init(unsigned int baud){
    	//Ustawienie BAUD RATE
    	UBRRH = (unsigned char)(baud>>8);
    	UBRRL = (unsigned char)baud;
    	//Włączenie TX i RX
    	UCSRB = (1<<RXEN) | (1<<TXEN);
    	// Ustawienie ramki, 8 bitow | 1 bit stopu
    	UCSRC = (1<<URSEL) | (3<<UCSZ0);
    	//Tryb asynchroniczny normalny
    	UCSRA &= ~(1<<U2X);
    }
    
    USART_Transmit(unsigned char data){
    	while( !(UCSRA & (1<<UDRE)) );
    	UDR = data;
    }
    
  • REKLAMA
  • #3 19089593
    Werterror
    Poziom 9  
    Mój błąd, powinienem był przekazywać wartość UBRR nie wartość Baud Rate do funkcji inicjalizującej usart
REKLAMA