解决CubeIDE调试时函数找不到源

本文讲述了在使用STM32F103C8T6单片机开发中遇到的MQTT库函数调试问题,通过添加库文件并配置工程,解决了函数找不到源的问题,关键步骤包括添加MQTT库和正确包含文件。

解决CubeIDE调试时函数找不到源

背景:STM32F103C8T6单片机使用esp8266模块连接阿里云,需要先在工程中移植MQTT后才能使用esp8266连接阿里云,程序中用到MQTT库中的很多接口,调试到这些接口的时候发现无法进入这些函数并提示”找不到源“。

调试到MQTTPacket_read()函数时,想要进入此函数

在这里插入图片描述

发现无法进入此函数,显示”找不到此函数的源“

在这里插入图片描述

可以看到此函数的定义是在”MQTTPacket.c“文件中,也就是MQTT的库中

在这里插入图片描述

猜测是因为没有将MQTT的库包含到工程里,所以找不到这条函数的源,因此尝试将MQTT库添加进工程:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

选择移植的MQTT文件

在这里插入图片描述

然后一路点击确定,再次编译调试,此时就可以进入MQTTPacket_read()函数了

在这里插入图片描述

在使用 CubeIDE 中的 printf 函数输出信息,有可能会出现看不到输出信息的情况。这可能是由于以下几个原因造成的: 1. 没有正确配置串口:如果没有正确配置串口,输出信息就无法正确地传输到计算机。需要确保串口的波特率、数据位数、停止位数、奇偶校验位等参数与计算机串口调试助手上的参数一致。另外,需要在代码中调用 HAL_UART_Transmit 函数将输出信息发送到串口。 2. 没有调用 fflush 函数:在使用 printf 函数输出信息,需要调用 fflush(stdout) 函数刷新输出缓冲区,将信息立即输出到串口。如果没有调用 fflush 函数,输出信息可能会被缓存起来,直到程序结束才被输出。 3. 串口调试助手上的参数设置不正确:如果串口调试助手上的参数设置不正确,也可能会导致看不到输出信息。需要确保串口调试助手上的波特率、数据位数、停止位数、奇偶校验位等参数与代码中设置的参数一致。 4. 代码中使用了错误的 printf 函数:有候,代码中可能会使用错误的 printf 函数,例如 printf_itm 函数。这些函数不是标准 C 库中的函数,无法正确地输出信息。需要确保代码中使用的是标准 C 库中的 printf 函数。 综上所述,如果在使用 CubeIDE 中的 printf 函数输出信息不到输出,需要逐一排查以上几个可能的原因,以确定问题所在。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

studyingdda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值