女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的printf函數(shù)重定向方法

STM32嵌入式開發(fā) ? 來源:CSDN ? 2023-07-10 16:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

法1:使用MicroLIB庫

1.1 KEIL-MDK中的Use MicroLIB選項

在MDK開發(fā)環(huán)境中,b79be2f4-1ef8-11ee-962d-dac502259ad0.png

MicroLib是缺省c庫的備選庫,它可裝入少量內(nèi)存中,與嵌入式應用程序配合使用,且這些應用程序不在操作系統(tǒng)中運行。

MicroLib進行了高度優(yōu)化以使代碼變得很小,功能比缺省c庫少,不具備某些ISO c特性,部分庫函數(shù)的運行速度也比較慢,如內(nèi)存拷貝函數(shù)memcpy()。MicroLib與缺省c庫之間的主要差異在網(wǎng)上有許多文章都有寫到,這里摘抄記錄:
  • MicroLib 不符合 ISO C 庫標準。不支持某些 ISO 特性,并且其他特性具有的功能也較少。
  • MicroLib 不符合 IEEE 754 二進制浮點算法標準。
  • MicroLib 進行了高度優(yōu)化以使代碼變得很小。
  • 無法對區(qū)域設置進行配置。缺省 C 區(qū)域設置是唯一可用的區(qū)域設置。
  • 不能將 main() 聲明為使用參數(shù),并且不能返回內(nèi)容。
  • 不支持 stdio,但未緩沖的 stdin、stdout 和 stderr 除外。
  • MicroLib對 C99 函數(shù)提供有限的支持。
  • MicroLib不支持操作系統(tǒng)函數(shù)。
  • MicroLib不支持與位置無關的代碼。
  • MicroLib不提供互斥鎖來防止非線程安全的代碼。
  • MicroLib不支持寬字符或多字節(jié)字符串。
  • 與stdlib不同,MicroLib不支持可選擇的單或雙區(qū)內(nèi)存模型。MicroLib只提供雙區(qū)內(nèi)存模型,即單獨的堆棧和堆區(qū)。
MicroLib提供了一個有限的stdio子系統(tǒng),它僅支持未緩沖的stdin、stdout和stderr,那么也就是說勾選了Use MicroLib選項后,在代碼工程中就可以使用printf()函數(shù)咯?然而事實并非如此,這樣直接使用printf()函數(shù),其打印的字符串最終不知道打印到何處。我們要做的是將調(diào)試信息打印到USART1中,所以需要對printf()函數(shù)所依賴的打印輸出函數(shù)fputc()重定向(MicroLib中的printf()函數(shù)打印操作依賴fputc())。

1.2 重定向fputc函數(shù)

在MicroLib的stdio.h中,fputc()函數(shù)的原型為:b7d131f2-1ef8-11ee-962d-dac502259ad0.png此函數(shù)原本是將字符ch打印到文件指針stream所指向的文件流去的,現(xiàn)在我們不需要打印到文件流,而是打印到串口1。基于前面的代碼:b7e98db0-1ef8-11ee-962d-dac502259ad0.png注意,需要包含頭文件stdio.h,否則FILE類型未定義。勾選了Use MicroLib選項,重定向fputc()函數(shù)后,我們就可以在工程代碼中使用printf()函數(shù)了:b8107fec-1ef8-11ee-962d-dac502259ad0.pngprintf()函數(shù)的使用方法跟之前一樣,運行結果:b829fdd2-1ef8-11ee-962d-dac502259ad0.png

法2:不使用MicroLIB庫

2.1 半主機模式

半主機模式是ARM的一種機制,實現(xiàn)將來ARM應用程序代碼的輸入/輸出請求傳送至運行著調(diào)試器的主機。例如設置使用半主機模式下的ARM應用程序,可以使用printf()和scanf()來使用主機的顯示器和鍵盤,而不需要在ARM系統(tǒng)上搭配顯示器和鍵盤。半主機通過一組定義好的軟件指令(如SVC)來實現(xiàn)的,這些指令在程序控制下產(chǎn)生異常,ARM應用程序調(diào)用半主機對應的異常處理函數(shù),然后調(diào)試代理處理該異常。一般的ARM應用程序中并不需要半主機操作,在這里為確保ARM應用程序中沒有鏈接MicroLib的半主機相關函數(shù),我們要取消ARM的半主機工作模式。

2.2 實現(xiàn)代碼

在工程中加上如下代碼:b8696634-1ef8-11ee-962d-dac502259ad0.png這樣操作后,在不使用MicroLib的前提下,仍能使用printf()函數(shù)將調(diào)試信息打印到USART1上了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 操作系統(tǒng)

    關注

    37

    文章

    7136

    瀏覽量

    125469
  • STM32
    +關注

    關注

    2293

    文章

    11031

    瀏覽量

    364270
  • 函數(shù)
    +關注

    關注

    3

    文章

    4379

    瀏覽量

    64737

原文標題:STM32的printf函數(shù)重定向方法

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32的DCode bus是連接到bus matrix的嗎?

    matirx的4個master的其中一個,和前面圖相符,但又和參考手冊對dcode的描述不符。 以上好像描述不符的地方,我猜測這種矛盾可能的原因是,因為sram也可以重定向到0x00000000,當
    發(fā)表于 06-17 07:40

    多晶硅錠定向凝固生長方法

    鑄錠澆注法是較早出現(xiàn)的一種技術,該方法先將硅料置于熔煉坩堝中加熱熔化,隨后利用翻轉機械將其注入模具內(nèi)結晶凝固,最初主要用于生產(chǎn)等軸多晶硅。近年來,為提升多晶硅電池轉換效率,通過控制模具中熔體凝固過程的溫度,創(chuàng)造定向散熱條件,從而獲得定向
    的頭像 發(fā)表于 03-13 14:41 ?502次閱讀

    STM32CubeIDE STM32H743XIH6串口無法重定向,且發(fā)送內(nèi)容波特率不對亂碼怎么解決?

    STM32CubeIDE重定向無效果,且使用HAL_UART_Transmit(&huart1, (uint8_t *)\"0123rn\", sizeof
    發(fā)表于 03-11 06:42

    DeepSeek獲殊榮,成為ai.com重定向官網(wǎng)

    近日,記者發(fā)現(xiàn),在瀏覽器中輸入“ai.com”這一頂級域名時,頁面將直接重定向至DeepSeek的官方網(wǎng)站。這一變化引起了業(yè)界的廣泛關注,標志著DeepSeek在人工智能領域的地位得到了高度認可
    的頭像 發(fā)表于 02-11 15:41 ?503次閱讀

    全面掌握Linux重定向技巧:讓命令行操作效率翻倍的秘密

    #1 linux輸出重定向 $ command > file 2>1 這里的 ,表示重定向的目標不是一個 文件 ,而是一個 文件描述符 ,內(nèi)置的文件描述符如下 1 => stdout2
    的頭像 發(fā)表于 01-08 10:19 ?518次閱讀

    stdio.h實現(xiàn)了printf函數(shù)?

    我們平時包含的 stdio.h 頭文件,里面是不是實現(xiàn)了 printf 函數(shù)? 為什么會有這個疑問?因為每次使用 printf,就得包含 stdio.h ,這就導致很多同學誤以為,stdio.h
    的頭像 發(fā)表于 12-18 10:28 ?596次閱讀

    【RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用】02、UART串口通信

    = 1; break; } default: break; } } 還是在debug_bsp_uart.c文件中,加入重定向 printf 輸出的函數(shù) /* 重定向
    發(fā)表于 12-14 11:44

    51單片機中為什么很少出現(xiàn)printf的身影

    流,他能跟外部交互的,只有串口。 51單片機用的開發(fā)語言是C語言,雖然跟標準C有點區(qū)別,但是 printf 函數(shù)還是可以用的,只要修改 printf 的輸
    的頭像 發(fā)表于 12-03 10:46 ?1354次閱讀
    51單片機中為什么很少出現(xiàn)<b class='flag-5'>printf</b>的身影

    嵌入式 學習-飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之輸入輸出重定向

    終端)更改為從指定文件中獲取。輸出重定向使用方法:1.命令 &gt; 文件名(將命令執(zhí)行的結果輸出到文件中,輸出的結果會覆蓋掉文件原來的內(nèi)容)。2.命令 &gt
    發(fā)表于 09-24 10:06

    飛凌嵌入式ElfBoard ELF 1板卡-shell腳本編寫之輸入輸出重定向

    重定向使用方法:1.命令 &gt; 文件名(將命令執(zhí)行的結果輸出到文件中,輸出的結果會覆蓋掉文件原來的內(nèi)容)。2.命令 &gt;&gt; 文件名(將命令
    發(fā)表于 09-23 10:23

    STM32CUBEMX(8)--USART通過定時器中斷方式接收不定長數(shù)據(jù)

    =0;//接受到數(shù)據(jù)標志 /* USER CODE END PV */ 定義printf重定向函數(shù)fputc。 /* USER CODE BEGIN 0 */ void printf
    發(fā)表于 09-06 16:48

    STM32CUBEMX(2)--USART通過DMA方式接收不定長數(shù)據(jù)

    ]; //接收緩沖區(qū) uint8_t recv_end_flag = 0,Rx_len;//接收完成中斷標志,接收到字符長度 /* USER CODE END PV */ 函數(shù)聲明和串口重定向
    發(fā)表于 09-04 11:48

    還不會嗎?三分鐘讓你速通Printf~

    一、Printf簡介Printf是一個標準的c庫API,用來打印信息顯示的。Printf的底層輸出調(diào)用,在windows環(huán)境下是fputc函數(shù),在GNUC環(huán)境下是__io_putcha
    的頭像 發(fā)表于 07-27 08:11 ?663次閱讀
    還不會嗎?三分鐘讓你速通<b class='flag-5'>Printf</b>~

    重定向了fputc及putchar函數(shù),但printf沒有輸出,為什么?

    重定向了fputc及putchar函數(shù),但printf沒有輸出 刪除了drivers/drv_uart.c drv_uart.h 刪除了文件rt-thread\\components
    發(fā)表于 07-18 07:44

    在ESP8266_RTOS_SDK中應該怎么把ESP_LOGI重定向到UART1?

    如題,請問在ESP8266_RTOS_SDK中應該怎么把ESP_LOGI重定向到UART1? 在Esp_log.h文件中找到 /** * @brief Set function used
    發(fā)表于 07-15 06:21
    主站蜘蛛池模板: 托克逊县| 改则县| 宁乡县| 望城县| 徐闻县| 青川县| 吉林省| 普兰县| 花莲县| 开封县| 荔波县| 洛隆县| 青田县| 文安县| 华蓥市| 定边县| 彰化市| 大同县| 蚌埠市| 南丰县| 项城市| 越西县| 揭西县| 景德镇市| 津市市| 平塘县| 乐昌市| 夏邑县| 微山县| 香河县| 堆龙德庆县| 囊谦县| 万州区| 芜湖县| 台东县| 洛扎县| 沂源县| 扬州市| 辽中县| 桓仁| 巴里|