UART: How to get "Transmission Complete" interrupt ?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

UART: How to get "Transmission Complete" interrupt ?

1,684件の閲覧回数
alexeyborisenko
Contributor I

I whish to get interrupt after all bytes writen to TXDAT already fully sent, so I can disable my external RS485 transmitter from that interrupt. Is it possible?

     

Can I be sure that when TXRDY set (and I'm not write yet one byte after that), transmission of next byte (which is just now pushed into shift register) already started, so if I set TXDIS immediately now, that next byte will be transmitted before transmitter stopped and TXDISINT interrupt generated, and I can then use that interrupt to disable my extermal RS485 transmitter?

When exactly TXDISINT will be signalled? at end of stop bit? or in the middle?

I'm using LPC812.              

タグ(1)
0 件の賞賛
返信
1 返信

1,552件の閲覧回数
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Alexey Borisenko,

    1.Get interrupt after all bytes writen to TXDAT already fully sent

    From the UART hardware, LPC812 can't support it directly, TXRDYEN is jused to enables an interrupt when the TXDAT register is available to take another character to transmit.

   Actually, from the user manual, we just find these UART interrupt:

pastedImage_1.png

If you have more bytes to send, and you want to get the notification after all the data is sent, you can enable the TXRDYEN, in the ISR function, you can counter the send data number, when the number is meet your demand, you can set some flag which is defined by yourself, just use the software to realize it.

2. About the TXDIS and TXDISINT

   From the user manual descrption:

pastedImage_2.png

pastedImage_3.png

If the TX buffer already have the data, and you set the TXDIS, then the USART transmitter will be disabled after the TX buffer data is sent. The next data which is not moved to the TX buffer won't be sent. About the INT, I think it will be happen after the TX buffer data is complete, it is the end of the stop bit.

Wish it helps you!

If you still have question about it, please kindly let me know!

Have a great day,
Kerry

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 件の賞賛
返信