Hallo,
ich sende einem STM32F4 mittels UART Telegramme.
Die Empfangenen Daten werden mittels DMA in ein Array abgelegt.
Der DMA ist wie folgt konfiguriert:
Mode: Circular
Data Width Byte/Byte
kein FIFO
1 | char uart_rx[16];
|
2 | HAL_UART_Receive_DMA(&huart1, (uint8_t*)&uart_rx[0], 16);
|
Wenn 16 Zeichen empfangen wurden wird wieder uart_rx[0] überschrieben.
soweit so gut!
Die vom STM32 zu empfangeneden Daten haben am ende ein CR oder LF.
Ist es möglich den "DMA pointer" bei erhalt eines CR oder LF auf
uart_rx[0] zurückzusetzen?
irgendwie so:?
1 | uint8_t i;
|
2 | for (i=0; i<16; i++){
|
3 | if (uart_rx[i] == '\r'){
|
4 | DMA pointer = &uart_rx[0];
|
5 | }
|
6 |
|
7 | }
|