这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机 Printf函数的多种玩法!

共7条 1/1 1 跳转至

单片机 Printf函数的多种玩法!

工程师
2019-07-04 16:36:40     打赏


基于STM32的多种printf用法,你都知道吗?

strongerHuang 嵌入式资讯精选 



单片机开发中,Printf是非常常用和实用的一个函数,下面以stm32为例,看看如何玩转Printf


在调试代码的时候,最常用的就是使用printf函数来输出一些打印信息,提示自己代码的执行情况。


如果你的UART串口不够用,还要用printf,此时该怎么办?


方法其实是有的,那就是:使用SWO/SWV。


SWO:Serial Wire Output,串行线输出


SWD:Serial Wire Viewer,串行线查看器


一、常见printf输出

1.UART打印

1.webp.jpg

这种使用UART串口输出,需要占用一个硬件串口。


2.Keil MDK-ARM Viewer输出

2.webp.jpg


3.IAR EWARM终端输出

3.webp.jpg


4.ST-LINK Utility SWV输出


4.webp.jpg

这后面三种不占用硬件UART,使用ITM机制。


二、UART映射printf

这种方法应该很多人都知道,就是使用硬件UART串口映射,实现printf打印输出。



对于Keil、 IAR,只需要添加如下代码,就可以使用printf函数:

#include "stdio.h"int fputc(int ch, FILE *f)
{  
   HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF); 
   return ch;
 }

意思就是将UART输出(串口输出一个字符)进行映射。


三、Keil MDK-ARM Viewer输出

针对2、3、4输出:

5.webp.jpg


添加代码:

#include "stdio.h"int fputc(int ch, FILE *f){  ITM_SendChar(ch);  return ch;}


在Keil的Options中设置:

6.webp.jpg


提示:Core Clock内核时钟要和你实际时钟对应。


四、IAR EWARM终端输出

1.Oprtins设置:




2.SWO配置





五、ST-LINK Utility SWV输出

工具在线查看输出信息,需要上面配置代码,通过ST-Link链接即可。







关键词: Printf     串口调试    

工程师
2019-07-04 22:32:05     打赏
2楼

楼主,没图。。。。


工程师
2019-07-04 22:42:52     打赏
3楼

楼主没图  


工程师
2019-07-04 22:46:20     打赏
4楼

有图就好了


工程师
2019-07-04 22:49:17     打赏
5楼

支持一下


工程师
2019-07-04 23:42:13     打赏
6楼

哇,还挺多种方法的!


工程师
2019-07-04 23:52:31     打赏
7楼

Fatfas 官网也有一个小型的 xprintf, 我以前用过! 短小精悍!也挺好用的。


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]