在調試代碼的時候,最常用的就是使用printf函數來輸出一些打印信息,提示自己代碼的執行情況。
如果你的UART串口不夠用,還要用printf,此時該怎么辦?
解決方法:使用SWO/SWV。
-
SWO:Serial Wire Output,串行線輸出
-
SWD:Serial Wire Viewer,串行線查看器
一、常見printf輸出
- 1.UART打印
- 3.IAR EWARM終端輸出
- 4.ST-LINK Utility SWV輸出
二、UART映射printf
使用硬件UART串口映射,實現printf打印輸出。
#include "stdio.h"
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
三、Keil MDK-ARM Viewer輸出
- 針對2、3、4輸出
- 添加代碼:
#include "stdio.h" int fputc(int ch, FILE *f) { ITM_SendChar(ch); return ch; }
- 在Keil的Options中設置
四、IAR EWARM終端輸出
- 1.Oprtins設置
- 2.SWO配置
五、ST-LINK Utility SWV輸出
工具在線查看輸出信息,需要上面配置代碼,通過ST-Link鏈接即可。
文章整合自:csdn
編輯:ymf
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
uart
+關注
關注
22文章
1243瀏覽量
101771 -
函數
+關注
關注
3文章
4346瀏覽量
62973 -
Printf
+關注
關注
0文章
83瀏覽量
13732
發布評論請先 登錄
相關推薦
stdio.h實現了printf函數?
我們平時包含的 stdio.h 頭文件,里面是不是實現了 printf 函數? 為什么會有這個疑問?因為每次使用 printf,就得包含 stdio.h ,這就導致很多同學誤以為,stdio.h
51單片機中為什么很少出現printf的身影
51單片機中為什么很少出現 printf 的身影?是用不了嗎? 不是的,51單片機可以用 printf,只是不建議使用。 平時我們在操作系統上寫C語言代碼,使用 printf 可以把數據寫到標準輸出
![51單片機中為什么很少出現<b class='flag-5'>printf</b>的身影](https://file1.elecfans.com/web3/M00/00/D3/wKgZPGdOcWOAYumHAAAGbaPdCx0068.png)
還不會嗎?三分鐘讓你速通Printf~
一、Printf簡介Printf是一個標準的c庫API,用來打印信息顯示的。Printf的底層輸出調用,在windows環境下是fputc函數,在GNUC環境下是__io_putchar函數
![還不會嗎?三分鐘讓你速通<b class='flag-5'>Printf</b>~](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
鴻蒙Ability Kit(程序框架服務)【UIAbility組件基本用法】
UIAbility組件的基本用法包括:指定UIAbility的啟動頁面以及獲取UIAbility的上下文[UIAbilityContext]。
![鴻蒙Ability Kit(程序框架服務)【UIAbility組件基本<b class='flag-5'>用法</b>】](https://file1.elecfans.com/web2/M00/EC/1E/wKgZomZhJtuAGvhjAACAmnpjgBM543.png)
STM32F1HAL TIM2定時printf打印出現丟數值的原因?
芯片:STM32F103C8T6環境:STM32CubeMX和STM32CubeIDE庫:STM32F1HAL問題:TIM2定時5秒->UART1
發表于 06-04 08:03
STM32CubeIDE printf浮點數,浮點數丟失數值的原因?
1、芯片:STM32F103C8T62、環境:STM32CubeIDE3、問題:printf浮點數,浮點數數值丟失如 float A=25.6666;float B=24.7777;實際打印
發表于 06-03 07:07
STM32CubeIde生成的工程,使用printf函數沒有調用_write和__io_putchar函數,為什么?
最近使用STM32CubeIde生成工程,就先做一個簡單的串口工程,使用NUCLEO-WBA52CG板子進行調試。
在初始化完畢后,使用printf打印log,重寫了int io_putchar
發表于 05-24 06:13
STM32 HAL printf所占用串口不能做中斷接收如何解決?
目前在使用STM32L053系列MCU,基于HAL庫的程序,硬件串口資源有3個,都已經被使用;其中USART2通過Switch芯片來實現printf打印和讀取傳感器數據;因為USART2串口接收數據
發表于 04-29 09:01
STM32 hal庫無法接收串口數據是怎么回事?
型號:STM32L432KC官方開發板
串口使用的是板載的USB下載口以及串口
用法:
在串口初始化后,while(1)之前調用 接收中斷函數 HAL_UART_Receive_IT(),接收
發表于 04-29 06:11
在macos下SW4STM32編譯,調用printf異常怎么解決?
剛開始在MACOS下開發STM32的程序,現在出現了一些很奇怪的問題,看是否大家有遇到這樣的問題。
開發配置如下
1.STM32cube427,STM32Cube FW_F4 V1.21.0
發表于 04-17 06:48
STM32CubeIDE使用sprintf/printf發送浮點數失敗的原因?
均得到的是v=0.000,
已按照truestudio的一些教程設置了-u_printf_float標志
這個函數的浮點功能,很重要呀,一些程序調試,打印Debug信息,液晶顯示等都會用到
實在不行就只有換回Keil+stm32cubeMX了
求大神指點指點!
發表于 04-16 06:11
stm32f7系列使用printf打印在串口上顯示不出來怎么解決?
#include \"stm32f7xx.h\"
#include\"stm32f7xx_hal.h\"
#include
#ifdef __GNUC__
發表于 04-11 06:18
STM32的疑難雜癥之一:Printf的使用
一、Printf簡介Printf是一個標準的C庫API,用來打印信息顯示的。Printf的底層輸出調用,在windows環境下是fputc函數,在GNUC環境下是__io_putchar函數
![<b class='flag-5'>STM32</b>的疑難雜癥之一:<b class='flag-5'>Printf</b>的使用](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
求助,關于STM32CUBEIDE1.5.0使用Printf函數的疑問
基于eclipse的,就把工程弄到STM32CUBEIDE中,但怎么都不OK
自己從新從STM32CUBEMX到STM32CUBEIDE建工程,發現可以燒錄進去,LED跑起來了,但是print
發表于 03-22 06:47
評論