This paper analyzes some traditional design ideas about serial receiving program. For their shortcomings, a method of subsection receiving with frame synchronization(SRFS) based on DMA is proposed. The main idea of this method is to encapsulate the communication data into a frame with the specified structure, then divide a data frame receiving into several specified segments and make receiving process of every segment to match a certain execution state of receiving algorithm. Meanwhile, this method utilizes the software queue to separate data receiving from data processing. Finally, this paper conducts a compared experiment on a hardware platform of STM32F103RBT6, and the result indicates that the proposed method has prominent performance on suitability, real-time, reliability and so on. Besides, it solves the problem faced by receiving variable-length data with DMA. In a word, the method in this paper can be applied to embedded system with serial communication which demands large amounts of data transmission volume, high-speed communication, strong real-time and reliability.