STM32/STM8技术论坛
直播中

沃尔夫斯堡

11年用户 268经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术 测量仪表 嵌入式技术 制造/封装 模拟技术 连接器 EMC/EMI设计 光电..
私信 关注
[问答]

关于STM32程序运行的问题。。。

本帖最后由 Angel.S.J 于 2018-1-9 20:58 编辑

stm32纠错2.jpg 项目中需要用到STM32,利用其驱动一个WIFI模块,测试例程时为啥向一个函数里加一行打印代码,这下编译完烧录 进去以后就运行不了了?,想请教一下,这是什么原因啊?还有就是DebuG时step over/in 进行调试时怎么走不了了?困扰了很久,就是想不到很好的原因。。

回帖(6)

勇哥-lzu

2018-1-10 16:21:43
打印是为了从串口看到程序的运行情况,printf没有退出是因为没有实现putc换上,去百度一下,stm32 printf函数实现 有很多资料
举报

一叶倾城wwq

2018-1-10 16:38:15
调试用呗,自信的话你也可以不用,注释掉就行了
举报

J.Q.Chris

2018-1-11 08:34:45
因为要添加函数库"stdio.h"。
// 发送数据

int fputc(int ch, FILE *f)

{

USART_SendData(USART1, (unsigned char) ch);// USART1 可以换成 USART2 等

while (!(USART1->SR & USART_FLAG_TXE));

return (ch);

}

// 接收数据

int GetKey (void) {

while (!(USART1->SR & USART_FLAG_RXNE));

return ((int)(USART1->DR & 0x1FF));

}
因为在printf函数当中有个while(!)函数,你调试的调进去,肯定停在这一句。
我认为问题在于printf函数里面要指定一个串口进行打印,你有没有配置这个串口?若没有配置,则发送和接受不会接收到标志位。
举报

da

2018-1-11 19:59:27
可以
举报

da

2018-1-11 19:59:40
是的
举报

2018-2-5 20:49:45
嗯嗯,是的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分