娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

STM32 printf重定向(串口輸出)

發布者:Mengyun最新更新時間:2025-05-12 來源: eepw關鍵字:STM32  printf  重定向  串口輸出 手機看文章 掃描二維碼
隨時隨地手機看文章

一、前言


什么是重定向?重定向是指將fputc里面的輸出指向目標設備。

因printf函數調用了fputc,而fputc輸出有默認指向的目標,

且不同庫中的fputc輸出指向不同,所以需要重寫fputc


二、標準庫與HAL庫實現重定向到串口


若需要printf輸出到串口,則需要將fputc里面的輸出指向串口,這一過程稱為重定向。


    1.標準庫(重定向到USARTx,代碼中為USART1)


int fputc(int ch,FILE *p) 

 

{

 

 USART_SendDate(USART1,(u8)ch);

 

 while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);

 

 return ch;

 

}

    2.HAL庫 (重定向到huartx,代碼中為huart1)


int fputc(int ch, FILE *f)

 

{

 

  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);

 

  return ch;

 

}

NOTES:


1.調用printf需先導入stdio.h頭文件


2.需勾選Target中的use MicroLIB


關鍵字:STM32  printf  重定向  串口輸出 引用地址:STM32 printf重定向(串口輸出)

上一篇:基于STM32H743的仿真轉臺控制器設計
下一篇:基于STM32F103的角磨機開關磁阻電機控制器的設計

推薦閱讀最新更新時間:2025-06-06 15:52

STM32重定向C庫printf/scanf
參考例程 ///重定向c庫函數printf到串口,重定向后可使用printf函數 int fputc(int ch, FILE *f) { /* 發送一個字節數據到串口 */ USART_SendData(DEBUG_USART, (uint8_t) ch); /* 等待發送完畢 */ while (USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET); return (ch); } ///重定向c庫函數scanf到串口,重寫向后可使用scanf、getchar等函數 int fgetc(FILE *f) { /* 等待串口輸入數據
[單片機]
STM32單片機編程printf()函數重定向
在stm32單片機編程中,可以重定向printf()函數來輸出調試信息。 編寫fputc()函數 其實printf()函數在頭文件中被定義成了一個宏,會調用到fputc()函數,但在stm32單片機編程中不可以直接調用標準庫的fputc()函數進行輸出信息,需要自己編寫fputc()函數供printf()函數來調用。編譯器進行編譯時首先會調用自己編寫的fputc()函數,而不是庫函數。 int fputc(int ch, FILE*f) { USART_SendData(USART1, (uint16_t)ch); //通過串口輸出
[單片機]
STM32工程上printf()函數的方法實現
針對STM32的串口編程,可以通過USART1向計算機的串口調試助手打印數據,或者接收計算機串口調試助手的數據。 下面,我們可以實現STM32工程上的printf()函數了,方便用于程序開發中調試信息的打印。 方法1:使用MicroLIB庫 1.1 KEIL-MDK中的Use MicroLIB選項 在MDK開發環境中, MicroLib是缺省c庫的備選庫,它可裝入少量內存中,與嵌入式應用程序配合使用,且這些應用程序不在操作系統中運行。MicroLib進行了高度優化以使代碼變得很小,功能比缺省c庫少,不具備某些ISO C特性,部分庫函數的運行速度也比較慢,如內存拷貝函數memcpy()。 MicroLib與缺
[單片機]
<font color='red'>STM32</font>工程上<font color='red'>printf</font>()函數的方法實現
STM32串口通信中使用printf發送數據配置方法
STM32串口通信中使用printf發送數據配置方法(開發環境 Keil RVMDK) 標簽: STM32 串口通信 printf方法 2011-06-29 23:29 在STM32串口通信程序中使用printf發送數據,非常的方便。可在剛開始使用的時候總是遇到問題,常見的是硬件訪真時無法進入main主函數,其實只要簡單的配置一下就可以了。 下面就說一下使用printf需要做哪些配置。 有兩種配置方法: 一、對工程屬性進行配置,詳細步驟如下 1、首先要在你的main 文件中 包含“stdio.h” (標準輸入輸出頭文件)。 2、在main文件中重定義函數 如下: // 發送數據 in
[單片機]
stm32使用中,printf函數不執行的問題
一、程序中已經添加了printf的庫函數 #include“stdio.h” 二、stm32串口通訊測試沒問題,此處可以通過調用 USART_SendData(USART1, 0xAA)函數來進行驗證; 三、現象。printf函數無法工作 四、解決辦法,使用自帶的迷你庫,就可以正常運行。
[單片機]
<font color='red'>stm32</font>使用中,<font color='red'>printf</font>函數不執行的問題
STM32 keil printf的使用
請在MDK(keil)工程屬性的 Target -》 Code Generation 中勾 選 Use MicroLIB 前提是你有一個完整keil的工程 比如ADC的調試的時候很多時候用到串口 這里教你怎么樣使 用Printf 函數 紅色字句為重點!!!!! 若使得在程序中使用Printf需做一下幾步 1,輸入輸出文件包含#include stdio.h 2,在程序下添加宏定義代碼 /* Private function prototypes -----------------------------------------------*/ #ifdef __GNUC__ /* With GCC/RAI
[單片機]
stm32 printf輸出到USART1
/************************頭文件*****************************************/ #include stm32f10x_lib.h //包含所有的頭文件 #include stdio.h /*******************************位綁定定義*****************************************/ //#define GPIOA_ODR_A (GPIOA_BASE+0x0C) //#define GPIOA_IDR_A (GPIOA_BASE+0x08) //#define GPIOB_ODR_A (GPIOB
[單片機]
<font color='red'>stm32</font> <font color='red'>printf</font><font color='red'>輸出</font>到USART1
如何高效地使用51單片機串口輸入輸出
51單片機一般使用串口的方法都是這樣的 #include reg52.h #define uint unsigned int void UART_Init(); uint num ; /* ****************************************** **函數名稱:主函數 ******************************************* */ int main() { UART_Init(); while(1); } /* ***************************************** **函數功能:串口初始化函數 **************
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 茶陵县| 东乡县| 广宗县| 河东区| 青铜峡市| 即墨市| 若羌县| 漾濞| 武隆县| 玉门市| 石家庄市| 南康市| 林州市| 揭东县| 宁南县| 开阳县| 平武县| 湘潭市| 江山市| 新昌县| 嘉定区| 五寨县| 秀山| 昭苏县| 黄梅县| 常宁市| 鸡泽县| 荃湾区| 琼海市| 通许县| 宿迁市| 万荣县| 博湖县| 旌德县| 山阴县| 堆龙德庆县| 化州市| 乌兰浩特市| 巴东县| 故城县| 揭西县|