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

2019-07-20 03:18发布

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



求大佬解救啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-20 05:38
编译并不会检查你有没有调用初始化函数。
ZHDX
2楼-- · 2019-07-20 08:13
估计是你的printf没配置好. 因为默认的printf的实现方式会在初始化的时候干点什么的. 如果初始化失败, 那么根本进不了main函数.

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

Manage Run-Time Environment对话框里,

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



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


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

m2967154
3楼-- · 2019-07-20 10:33
 精彩回答 2  元偷偷看……
m2967154
4楼-- · 2019-07-20 15:59
正点原子 发表于 2019-3-11 23:14
编译并不会检查你有没有调用初始化函数。

而且我没有包含stdio头文件就直接用printf这也没有提示错误警告类的
m2967154
5楼-- · 2019-07-20 16:23
 精彩回答 2  元偷偷看……

一周热门 更多>