1. 程式人生 > >STM32 學習九 通過USART實現printf重定向

STM32 學習九 通過USART實現printf重定向

把printf函式內容通過USART串列埠輸出,可以方便除錯STM32內部程式。示例程式碼如下:

/*******************************************************************************
* Function Name  : fputc
* Description    : 重定向fput,以實現重定向printf
* Return         : int
*******************************************************************************/
int fputc(int ch,FILE *f){
	USART_SendData(USART1,ch);

	while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
	return(ch);
}
int main(void)
{
	u8 data;
	u8 i;
	//初始化
	RCC_Configuration();
	GPIO_Configuration();
	USART_Configuration(19600);


	//UE使能位
	data='A';
	USART_Cmd(USART1,ENABLE);
	for(i=0;i<30;i++){
		USART_SendData(USART1,data);
		data++;
		//while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
		printf("%d:%c\n",i,data);
	}	
	printf("\nEnd");
}


相關推薦

STM32 學習 通過USART實現printf定向

把printf函式內容通過USART串列埠輸出,可以方便除錯STM32內部程式。示例程式碼如下: /**************************************************

[stm32][hal]USART 使用printf定向

stm32中使用printf。 main.c #include "stdio.h" //使用的USART1 int fputc(int ch, FILE *f) { USART1->DR

STM32之串列埠通訊之printf定向

在串列埠通訊中,常用的協議包括RS-232、RS-422和RS-485。 •RS-232:標準串列埠,最常用的一種序列通訊介面。有三種類型(A,B和C),它們分別採用不同的電壓來表示on和off。最被廣泛使用的是RS-232C,它將mark(on)位元的電壓定義為-3V到-12V之間,而將space(off)

SpringMVC學習()——SpringMVC中實現文件上傳

enc 一個人 ast max fonts common clas c學習 本地磁盤 這一篇博文主要來總結下SpringMVC中實現文件上傳的步驟。但這裏我只講單個文件的上傳。 環境準備 SpringMVC上傳文件的功能需要兩個jar包的支持,如下: 工程中肯定要導入

【STM32CubeMX】 串列埠通訊(USART) Printf定向

STM32CubeMX: Version 4.26.1 MDK-ARM: Version 5.24.2 開發板: 中移onenet 麒麟座MINI板 晶片: STM32F103CBT6 1.STM32CubeMX設定 設定外

windows下printf定向實現

最近我們有一個需求,要求將windows控制檯程式中通過printf列印的字串資訊全部重定向到另一個遠端控制終端上去;並且也將標準輸入也重定向到遠端終端。重定向資訊的傳輸用TCP傳輸。解決 這個問題,其實就是要求能夠截獲printf的字元資料,使其不在控制檯上列印,而是通過

STM32輸出除錯資訊-printf定向到串列埠

在STM32除錯過程中常常需要將除錯資訊輸出到串列埠,然後通過串列埠助手檢視輸出的除錯資訊。一般來說,串列埠輸出的是指定長度的十六進位制位元組,對於想列印的除錯資訊來 說,略顯靈活性不足。這時候如果可

新手學習FFmpeg - 通過API實現可控的Filter呼叫鏈

雖然通過宣告[x][y]avfilter=a=x:b=y;avfilter=xxx的方式可以建立一個可用的Filter呼叫鏈,並且在絕大多數場合下這種方式都是靠譜和實用的。 但如果想精細化的管理AVFilter呼叫鏈,例如根據某些條件來動態生成AVFilter Graph。這種宣告方式就不太靈活(也可以通過i

IIS 7如何實現http定向https

技術 文件 down gif tail ros 描述 web asp 在不少的企業當中,網站設計出於安全的考慮使用了https協議,但同時公司也開放了80協議,不少用戶因為輸入網址的習慣不喜歡帶上https協議,導致訪問異常。 第一步:從微軟的官方網站下載HTTP重寫模塊

jsp學習之——關於請求轉發和定向的形象理解

本質 url 博文 客戶端 style 讓我 esp 方法 rect 1.重定向:是屬於客戶端行為,實現方法:response.sendRedirect() 從本質上講等同於兩次請求,前一次的請求對象不會保留,在瀏覽器上的直觀表現是——地址欄的URL地址會改變。 2.請求轉

ASP.NET Core 使用 URL Rewrite 中間件實現 HTTP 定向到 HTTPS

添加引用 傳統 add arch rewrite direct get true configure 在傳統 ASP.NET 程序中,我們可以通過配置 IIS 的“URL 重寫”功能實現將 HTTP 請求重定向為 HTTPS 。但是該方法在 ASP.

springMVC學習總結(三) --springMVC定向

form mit 簡單 訪問 intern dir html isp pack 根據springMVC學習總結(一) --springMVC搭建搭建項目 在com.myl.controller包下創建一個java類WebController。 在jsp子文件夾下創建一個視

25 Java學習之標準I/O流定向

Java的System類提供了一些簡單的靜態方法呼叫,以允許我們對標準輸入、輸出和錯誤I/O流進行重定向: setIn(InputStream) setOut(PrintStream) setErr(PrintStream) 如果我們突然開始在顯示器上建立大量輸出,而這些輸出滾動得太快以

Servlet 獲取前端Form表單資料,並實現請求定向、請求轉發

1.前端介面 編寫一個最簡單的登入介面: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title&g

四十、python學習之Django框架(二):響應,定向,

二、響應: 檢視在接收請求並處理後,必須返回HttpResponse物件或子物件。 HttpRequest物件由Django建立,HttpResponse物件由開發人員建立。 1.HttpResponse: from django.http import Htt

JAVAWEB學習(5) — 轉發和定向

轉發和重定向 1. 轉發 1.1 什麼是轉發 一個web元件將未完成的處理通過容器交給另外一個web元件繼續做 web元件指的是servlet或者是jsp 通常是一個servlet獲得資料之後轉發給一個jsp來展現 1.2 如何轉發 繫結

JavaScript實現強制定向至HTTPS頁面

有時候需要把網頁強制切換成HTTPS,即使使用者已經訪問了HTTP的版本。原因可能是你不想讓使用者使用HTTP來訪問,因為它不安全。要做到這個很簡單,如果不想用PHP或者Apache的mod_rewrite來做這件事,用Javascript也可以。程式碼如下: <script type="tex

linux中將printf定向到telnet的方法和總結

在linuxc開發過程中肯定會遇到重定向的問題,重定向最多的就是printf,下面給出重定向的程式碼和需要注意的問題。 void telnetCtlPrintf(int index) { int fd; char tempPath[64]; memset(tempPath,0,s

Angular學習筆記-路由傳參及定向路由

路由傳參的三種方式 在查詢引數中傳遞資料 /product?id=1&name=2 => ActivatedRoute.queryParams[id] 在路由路徑中傳遞資料 {path:/product/:id} => /product/1 =&g

Nginx小技巧——幾種常見實現301定向方法上的區別

Nginx下常見的301跳轉有以下三種,雖然都能達到同樣的目的。但是三種寫法上還是有區別的,主要的區別是在正則匹配的效能上。 第一種:使用rewrite指令,通過正則匹配所有的URI後再去掉開頭第一個/(反斜線)。 rewrite ^/(.*)$ https://www.hi-linux.com/