打印

STM32串口接收死掉问题请教

[复制链接]
3560|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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内是否有未发送的数据



相关帖子

沙发
coody| | 2014-4-28 13:24 | 只看该作者
为什么不打电话问ST公司的技术支持?

使用特权

评论回复
板凳
airwill| | 2014-4-28 13:34 | 只看该作者
没有遇到过. 不过可以借助调试器分析一下问题原因. 串口问题还是 DMA 问题, (怀疑后者的可能性大).

使用特权

评论回复
地板
hpudream|  楼主 | 2014-4-28 15:51 | 只看该作者
airwill 发表于 2014-4-28 13:34
没有遇到过. 不过可以借助调试器分析一下问题原因. 串口问题还是 DMA 问题, (怀疑后者的可能性大). ...

嗯,因为本来这个情况都是偶尔会出现的,郁闷的是在Jlink调试下还没出现过这问题呢~~好纠结~

使用特权

评论回复
5
airwill| | 2014-4-28 19:36 | 只看该作者
那就把条件加严酷, 比如加大数据流量, 增加其他任务的忙碌程度等等. 等故障条件出现.

使用特权

评论回复
6
hpudream|  楼主 | 2014-4-29 20:30 | 只看该作者
airwill 发表于 2014-4-28 19:36
那就把条件加严酷, 比如加大数据流量, 增加其他任务的忙碌程度等等. 等故障条件出现. ...

调试下不会死,:Q

使用特权

评论回复
7
hpudream|  楼主 | 2014-5-4 13:43 | 只看该作者
airwill 发表于 2014-4-28 19:36
那就把条件加严酷, 比如加大数据流量, 增加其他任务的忙碌程度等等. 等故障条件出现. ...

确实在用Jlink调试的时候不会死,然后我在主循环中读取了DMA1_Channel6->CCR;DMA1->ISR;USART2->SR;USART2->CR1;这几个寄存器的值发现都没有出错,郁闷呐~


112233.bmp (527.6 KB )

11

11

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

44

帖子

0

粉丝