16bit DMA UART w / STM32F4

1

¿Cómo transmito 16 bits de datos con UART a una matriz de 16 bits? Tengo dos elementos en mi matriz, mi UART está configurado como 8N1 y mi DMA está configurado como circular.

Estoy usando algo de HAL, y aquí está mi configuración:

extern uint16_t tx_buffer[2];
extern uint16_t rx_buffer[2];


  MX_DMA_Init();
  MX_USART1_UART_Init();
  HAL_UART_Receive_DMA(&huart1, (uint8_t *) rx_buffer, 4);

Sin embargo, cuando envío una cadena de 4 8N1 bytes, mi matriz se ve así:

p/z rx_buffer
{0x88, 0x00}

He intentado una permutación diferente de cambiar el tipo para el puntero en la función HAL_UART_Receive_DMA , así como el tipo para las matrices ... También he intentado 2 & 4 para la longitud DMA, pero aún así nada funciona.

¿Alguna idea de por qué sucede esto?

Gracias

    
pregunta testname123

1 respuesta

3

Ahhh, tenía el tamaño de transferencia de mi DMA establecido en word, no en byte ...

    
respondido por el testname123

Lea otras preguntas en las etiquetas