【NUCLEO-L452RE测评】+STM32CUBEMX生成的程序加printf
<div class='showpostmsg'><p>搞单片机的都知道,加printf得重定义fputc,我现在把步骤写一下,以后再有类似的问题也做为记号:</p><p>首先,正常用STM32CUBEMX生成程序,然后在头顶#include那块加入</p>
<p>#include "stdio.h"</p>
<p>这个是调用printf库函数声明。</p>
<p>然后在函数声明结尾加入:</p>
<pre>
<code>
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
int fputc(int c, FILE *stream) //重写fputc函数
{
HAL_UART_Transmit(&huart2, (unsigned char *)&c, 1, 1000);
return 1;
}
/* USER CODE END 0 */
</code></pre>
<p>再三步在魔术棒下面把微库打上对号:</p>
<p>在程序里只加一个语句做为检验:</p>
<pre>
<code>printf("The RTOS is begin......");</code></pre>
<p>运行结果:</p>
<p></p>
<p> </p>
<p>总结一哈:printf函数可以当调试器用,也可以代JTAG,就是到要观察的地方,打印出来一串数据。</p>
<p>,如果实在没有串口,可以利用一个LED代替。</p>
<p> </p>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p><strong><a href="https://bbs.eeworld.com.cn/elecplay/content/148" target="_blank">ST NUCLEO-L452RE测评</a></strong></p>
<p>汇总贴:<a href="https://bbs.eeworld.com.cn/thread-1151850-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1151850-1-1.html </a>、</p>
<p>学习了</p>
页:
[1]