> ...and how can you know a frame data received complete?
Only you can know that. This is part of the protocol you run.
A text-based protocol often uses '\r', '\n', or both to terminate a sequence, like NMEA183. Binary protocols like Modbus RTU use pause times, and have no such character.
> I can't use the way to receive data becase I use many usarts to received data and they will occupancy cpu resources !
You will have to use your CPU time for something.
At moderate baudrates and proper design, the time spent in handlers will not have much consequence.
OTOH, with fixed-size DMA reception, you will have an uncertain delay between actual transmission and reaction in your application. It is only delivered to your main loop when a multiple of your DMA size is received, which usually happens at the next transmission.
I am not totally sure about the LPC UART peripheral, but UARTs in other Cortex M stop reception if an error occurs (overflow, noise, parity, etc). You would need to clear this error condition manually to re-enable reception. In my experience, this does not mix well with DMA or any blockwise reception method.