STM32F407 printf函数打印输出数据到串口调试助手出问题

2019-03-23 17:49发布

如题,楼主是STM32F407的板子,用DMA接收数据,DMA接收的数据存放在缓存数组中,然后用printf打印输出缓存数组存放的数据,程序刚加载运行的时候正常,DMA接收到什么数据,printf就打印输出什么数据在串口调试助手显示。但是程序运行一段时间后,就没有数据输出显示了,开始我还以为是因为DMA没有接收到新的数据,所以没有显示。
但是单步debug之后,发现DMA一直有接收到的新数据,因为存放数据的缓存数组里的数据在变化,但是printf不工作了,就是串口调试助手不显示输出了,想请教一下大神,这个是怎么回事,怎么解决,楼主刚做STM32开发没多久,小白一个,希望大神们给一些指点
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
chunyang
1楼-- · 2019-03-24 00:28
/ 如果程序没有重新烧录过,那检查串口相关部分电路、元件的焊接以及连接导线之类。
散飞雪
2楼-- · 2019-03-24 06:25
 精彩回答 2  元偷偷看……
sysjtlwx
3楼-- · 2019-03-24 06:39
是使用MDK编程的吗 ?不知道是不是设置里没有打开微库导致的printf不好用的问题,可以进MDK魔术棒Target里勾上USE MicroLIB  重新编译下载试一试
散飞雪
4楼-- · 2019-03-24 10:35
sysjtlwx 发表于 2017-2-10 09:28
是使用MDK编程的吗 ?不知道是不是设置里没有打开微库导致的printf不好用的问题,可以进MDK魔术棒Target里 ...

是使用的MDK编程,刚刚看了下魔术棒里的Target,USE MicroLIB已经勾选上了。
上午我又重新调试了一下,这次我把所有的程序都注释掉了,就写了在while(1)里执行printf(“hello”);情况也是一样,一开始串口调试助手正常输出显示hello,输出一段时间后就不输出了。
散飞雪
5楼-- · 2019-03-24 13:05
 精彩回答 2  元偷偷看……
散飞雪
6楼-- · 2019-03-24 16:09
chunyang 发表于 2017-2-9 18:01
如果程序没有重新烧录过,那检查串口相关部分电路、元件的焊接以及连接导线之类。

刚又调试了一下,把DMA接收数据的程序语句注释掉就好使了,想知道这是为什么怎么能够解决

一周热门 更多>