本帖最后由 clz366 于 2012-12-6 10:27 编辑
我使用的芯片型号是:STM32F103VET6,
使用USART1的DMA功能接收无固定长度的数据时,遇到下面的问题:
1.串口USART1发送数据,我使用的是STM32F10xR.LIB库中的函数:
void USART_SendData(USART_TypeDef* USARTx, u8 Data) ;
2.由于接收的数据是无固定长度的,我使用的是USART1的DMA功能;
在使用DMA功能时,我发现:只要串口有数据,DMA的接收区中就会收到,而且新收到的数据会添加到上一次收到的数据后面,当接收区收满时,剩余的数据就会覆盖掉接收区以前收到的数据,如此循环接收数据,如下图所示.
3.我的问题是:
(1)我现在使用的是查询方式,但是感觉效率有些低,有没有别的方法解决DMA的这个问题;
(2)如果USART1不使用DMA方式,有没有别的方法接收无固定长度的数据;
谢谢。
|