stm32未运行的程序对之前的程序有影响?

2019-07-20 03:18发布

在调试stm32的一个读写flash程序时发现一个问题:
我成功读取flash后会有led提示,即红灯亮。
我现在又想加入串口功能,但忘记了调用初始化程序,
只在主程序的结尾使用了(也就是说和之前正确的程序只在结尾多了这几行)
结果编译竟然没有报错,因为我没有调用#include<stdio.h>
下载后程序运行不了,调试的时候发现连主程序第一行都跑不到



求大佬解救啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
ZHDX
2019-07-20 08:13
估计是你的printf没配置好. 因为默认的printf的实现方式会在初始化的时候干点什么的. 如果初始化失败, 那么根本进不了main函数.

不清楚是Keil还是C编译器自己的行为.

Manage Run-Time Environment对话框里,

Compilier->I/O->STDOUT 可以指定printf的输出方式.



对于正点原子的代码, usart.c里, 是定义了 __stdout 和  fputc 的.  这也是重载printf的一个方法.


建议你单步调试一下, 看看哪里出错.

一周热门 更多>