yoneken/rosserial_stm32

Type mismatch error in STM32Hardware.h

tianyuZ opened this issue · 7 comments

HAL_UART_Transmit_DMA(huart, &(tbuf), twind);

Type mismatch,should be modified to HAL_UART_Transmit_DMA(huart, tbuf, twind);

After looking at it in detail,The second half of message in case of tx bufferoverflow will not be transferred to the serial port through DMA because the first part of the buffer has not been transferred, so the previous logic is correct.

Hello, I've read your reply about that problem...

That problem came to me and It occurs compile error..

Can I fix the line to this

HAL_UART_Transmit_DMA(huart, tbuf, twind);

?? Waiting for your reply, thanks

After looking at it in detail,The second half of message in case of tx bufferoverflow will not be transferred to the serial port through DMA because the first part of the buffer has not been transferred, so the previous logic is correct.

What do you mean with previous logic?
I suggested the second DMA transfer because of this problem -> #40

After looking at it in detail,The second half of message in case of tx bufferoverflow will not be transferred to the serial port through DMA because the first part of the buffer has not been transferred, so the previous logic is correct.

What do you mean with previous logic?

I suggested the second DMA transfer because of this problem -> #40

Thanks for your information.
Simply I have a issue that I cannot compile that line.(mentioned on issue #43)
Compile error occurs in stm32f466re board, Firmware version 1.24.2

After looking at it in detail,The second half of message in case of tx bufferoverflow will not be transferred to the serial port through DMA because the first part of the buffer has not been transferred, so the previous logic is correct.

What do you mean with previous logic?
I suggested the second DMA transfer because of this problem -> #40

Thanks for your information. Simply I have a issue that I cannot compile that line.(mentioned on issue #43) Compile error occurs in stm32f466re board, Firmware version 1.24.2

Since @tianyuZ discovered a problem with the DMA transfer logic, you probably should checkout rosserial_stm32 from this commit:
0d1c48b

Hello, I've read your reply about that problem...

That problem came to me and It occurs compile error..

Can I fix the line to this

HAL_UART_Transmit_DMA(huart, tbuf, twind);

?? Waiting for your reply, thanks

Sorry, just saw your comment now, your fix is correct.

After looking at it in detail,The second half of message in case of tx bufferoverflow will not be transferred to the serial port through DMA because the first part of the buffer has not been transferred, so the previous logic is correct.

What do you mean with previous logic? I suggested the second DMA transfer because of this problem -> #40

When the DMA transfer is completed, it will enter the interrupt and finally call the HAL_UART_TxCpltCallback callback function to transfer the remaining data again, so there is no need to immediately send out the second half of the message in the front of the tx buffer after a buffer overflow occured.