¿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