STM32F103C8T6 串口2用来DMA接收数据 ,50ms接收一帧数据(100字节);串口1接收上位机的回值判断signalflag变量的值,如signalflag==1数据发送给上位机,signalflag==0就把数据存储在外部flash里面,在大量测试下发现串口2接收会偶尔出现莫名其妙的死掉的情况(收不到数据了),不知道问题出在哪了,有没有人遇到过这种问题呢?
while(1)
{
IWDG_Feed();
if(signalflag==1)
{
LEN_RevData=DMABuffSize-DMA_GetCurrDataCounter(DMA1_Channel6);
if((LEN_RevData>=DataSize)&&(LEN_RevData%DataSize==0))
{
DMA_Cmd(DMA1_Channel6,DISABLE);//关闭通道
USART1WriteDataToBuffer(USART2_BUF1,LEN_RevData);
DMA_SetCurrDataCounter(DMA1_Channel6,DMABuffSize);//设置DMA缓存的大小
DMA_Cmd(DMA1_Channel6,ENABLE);//使能通道
}
else if((FlashReadPage!=FlashWritePage)||((FlashWriteAddr-FlashReadAddr)>=DataBuffSize))//判断外部Flash内是否有未发送的数据
|