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内是否有未发送的数据
|