ddllxxrr 发表于 2020-12-16 21:27

【NUCLEO-L452RE测评】+STM32CUBEMX生成的程序加printf

<div class='showpostmsg'><p>搞单片机的都知道,加printf得重定义fputc,我现在把步骤写一下,以后再有类似的问题也做为记号:</p>

<p>首先,正常用STM32CUBEMX生成程序,然后在头顶#include那块加入</p>

<p>#include &quot;stdio.h&quot;</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(&amp;huart2, (unsigned char *)&amp;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>&nbsp;</p>

<p>总结一哈:printf函数可以当调试器用,也可以代JTAG,就是到要观察的地方,打印出来一串数据。</p>

<p>,如果实在没有串口,可以利用一个LED代替。</p>

<p>&nbsp;</p>

<p>&nbsp;</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>

okhxyyo 发表于 2020-12-21 14:32

<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&nbsp;</a>、</p>

zhf1229 发表于 2020-12-22 16:48

<p>学习了</p>
页: [1]
查看完整版本: 【NUCLEO-L452RE测评】+STM32CUBEMX生成的程序加printf