如题,楼主是STM32F407的板子,用DMA接收数据,DMA接收的数据存放在缓存数组中,然后用printf打印输出缓存数组存放的数据,程序刚加载运行的时候正常,DMA接收到什么数据,printf就打印输出什么数据在串口调试助手显示。但是程序运行一段时间后,就没有数据输出显示了,开始我还以为是因为DMA没有接收到新的数据,所以没有显示。
但是单步debug之后,发现DMA一直有接收到的新数据,因为存放数据的缓存数组里的数据在变化,但是printf不工作了,就是串口调试助手不显示输出了,想请教一下大神,这个是怎么回事,怎么解决,楼主刚做STM32开发没多久,小白一个,希望大神们给一些指点
此帖出自
小平头技术问答
是使用的MDK编程,刚刚看了下魔术棒里的Target,USE MicroLIB已经勾选上了。
上午我又重新调试了一下,这次我把所有的程序都注释掉了,就写了在while(1)里执行printf(“hello”);情况也是一样,一开始串口调试助手正常输出显示hello,输出一段时间后就不输出了。
刚又调试了一下,把DMA接收数据的程序语句注释掉就好使了,想知道这是为什么怎么能够解决
一周热门 更多>