avr python comunicación en serie todos los datos \ xff

0

Tengo un imicrocontrolador AVR ATtiny conectado al módulo bluetooth HC-05 a través de USART (TX y RX) del microcontrolador. El microcontrolador está enviando datos constantes (por ahora) al módulo Bluetooth, que estoy viendo como datos en serie usando Python.

El problema es que estoy viendo todos los datos como '\ xff', o '\ xfd' o ... es decir, el MSB es siempre f. No veo una razón por la que esto debería suceder. ¡Alguien por favor ayuda!

Este es mi código:

void USART_initialize (int baud_value) {

//int baud_rate = (unsigned int)(((16000000)/(16*baud_value))-1);
UCSRC = ~(1<<UMSEL);                        // MODE OF COMMUNICATION 
UBRRH = (unsigned char)(25 >> 8);   // SETTING BAUD
UBRRL = (unsigned char)(25);        // RATE

UCSRC |= (3<<UCSZ0);                         // 8-BIT DATA
UCSRC |= (1<<UPM1);                         // EVEN PARITY
UCSRC &= ~(1<<USBS);                        // 1 STOP BIT

UCSRA &= ~(1<<U2X);                        // NORMAL ASYNCHRONOUS MODE OF COMMUNICATION

UCSRB = (1<<RXEN)|(1<<TXEN);               // ENABLE RECEIVER & TRANSMITTER

} int main (void) {

DDRB = 0xFF;
DDRA = 0x00;
DDRD = 0xFF;
int8_t data;

USART_initialize(9600);
while(1) {

    while(!(UCSRA & (1<< UDRE)));
    UDR = ('0b00000001');
    data = '\n';

}

return(0);

}

    
pregunta ironstein

1 respuesta

1

Posibilidad 1

Su conexión avr-a-bluetooth no tiene control de flujo y el lado de recepción no verifica el bit de parada.

Debe haber un problema compuesto de una velocidad de transmisión incorrecta o simplemente una transmisión interrumpida.

En este caso, verá ráfagas de datos rotos cuando espere datos y nada más.

Posibilidad 2

Le falta un pull-up o pull-down (según la señal ttl / rs232), por lo tanto, cada poco ruido provoca la recepción de un personaje.

Si este es el caso, recibirá muchos más datos de los que espera, de hecho, probablemente recibirá un flujo continuo de datos. Verifique el número de caracteres recibidos por segundo contra la velocidad en baudios / 10 (inicio, 8 datos, parada)

    
respondido por el Dima Tisnek

Lea otras preguntas en las etiquetas