RM新时代网站-首页

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

關(guān)于STM32半主機(jī)機(jī)制的作用

STM32嵌入式開(kāi)發(fā) ? 來(lái)源:STM32嵌入式開(kāi)發(fā) ? 作者:STM32嵌入式開(kāi)發(fā) ? 2021-04-09 14:02 ? 次閱讀

半主機(jī)機(jī)制的作用

半主機(jī)是用于ARM目標(biāo)的一種機(jī)制,可將來(lái)自STM32單片機(jī)應(yīng)用程序的輸入輸出請(qǐng)求傳送至運(yùn)行仿真器的PC主機(jī)。使用此機(jī)制可以啟用C庫(kù)中的函數(shù),如printf()和scanf(),來(lái)使用PC主機(jī)的屏幕和鍵盤。這樣就可以看到單片機(jī)的輸入輸出,方便進(jìn)行調(diào)試。注意:種機(jī)制的運(yùn)行需要仿真器,否則無(wú)法運(yùn)行。

簡(jiǎn)單的來(lái)說(shuō),半主機(jī)模式就是通過(guò)仿真器實(shí)現(xiàn)開(kāi)發(fā)板在電腦上的輸入和輸出。

開(kāi)發(fā)時(shí)單片機(jī)需要獨(dú)立運(yùn)行,開(kāi)發(fā)者就應(yīng)該去掉仿真器,把printf函數(shù)通過(guò)單片機(jī)的外設(shè)來(lái)實(shí)現(xiàn),例如通過(guò)開(kāi)發(fā)板的串口。

非半主機(jī)機(jī)制下printf函數(shù)的實(shí)現(xiàn)方法

Use MicroLIB(微庫(kù))

因?yàn)槭褂梦?kù)的話,不會(huì)使用半主機(jī)模式。

如下圖,在點(diǎn)開(kāi)MDK軟件的魔術(shù)棒,勾選Target選項(xiàng)卡中的“Use MicroLIB”。這樣就可以使用printf()函數(shù),通過(guò)USART輸出數(shù)據(jù)到電腦串口助手。

37a51ec0-9869-11eb-8b86-12bb97331649.png

在主程序中添加代碼

不使用Use MicroLIB(微庫(kù)),就要在工程中加入以下代碼, 以支持printf函數(shù) 。代碼是寫在USART的初始化文件中,記得修改USARTx,換成你要輸出的USART端口號(hào)。

【功 能】 printf函數(shù)重定向支持代碼 * 加入以下代碼, 使用printf函數(shù)時(shí), 不再需要選擇use MicroLIB * 參 數(shù): * 返回值:

#pragma import(__use_no_semihosting) //為確保沒(méi)有從C庫(kù)鏈接使用半主機(jī)的函數(shù) struct __FILE { int handle; }; // 標(biāo)準(zhǔn)庫(kù)需要的支持函數(shù)FILE __stdout; // FILE 在stdio.h文件void _sys_exit(int x) // 定義_sys_exit()以避免使用半主機(jī)模式{ x = x; }

int fputc(int ch, FILE *f) // 重定向fputc函數(shù),使printf的輸出,由fputc輸出到UART, 這里使用串口1(USART1){ //if(xFlag.PrintfOK == 0) return 0; // 判斷USART是否已配置,防止在配置前調(diào)用printf被卡死

while((USARTx -》SR&0X40)==0); // 等待上一次串口數(shù)據(jù)發(fā)送完成 USARTx -》DR = (u8) ch; // 寫DR,串口1將發(fā)送數(shù)據(jù) return ch;}

STM32嵌入式開(kāi)發(fā)

原文標(biāo)題:STM32的半主機(jī)機(jī)制

文章出處:【微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5082

    文章

    19104

    瀏覽量

    304797
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10895

    瀏覽量

    355729

原文標(biāo)題:STM32的半主機(jī)機(jī)制

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于理想汽車的車輛OTA機(jī)制問(wèn)題

    近期,有網(wǎng)友比較關(guān)心理想汽車的車輛OTA機(jī)制,針對(duì)大家關(guān)心的問(wèn)題,我們整理出以下問(wèn)答供大家了解。
    的頭像 發(fā)表于 12-18 10:09 ?120次閱讀

    虛擬主機(jī)名詞解釋

    虛擬主機(jī)(Virtual Host/Virtual Server)是一種在單一主機(jī)主機(jī)群上,實(shí)現(xiàn)多網(wǎng)域服務(wù)的方法,可以運(yùn)行多個(gè)網(wǎng)站或服務(wù)的技術(shù)。以下是關(guān)于虛擬
    的頭像 發(fā)表于 10-25 09:26 ?229次閱讀

    usb主機(jī)模式怎么打開(kāi)

    與外部設(shè)備進(jìn)行數(shù)據(jù)傳輸和交互。以下是關(guān)于如何打開(kāi)USB主機(jī)模式的指南。 1. 了解USB主機(jī)模式 USB主機(jī)模式允許設(shè)備充當(dāng)USB主機(jī),這意
    的頭像 發(fā)表于 09-25 09:08 ?1241次閱讀

    淺談SOC片上系統(tǒng)LoRa-STM32WLE5數(shù)據(jù)安全防御機(jī)制

    LoRa-STM32WLE5 SoC模塊不僅僅是一個(gè)具備出色通信能力的無(wú)線模塊,更是一個(gè)集成了多重安全機(jī)制的高效SoC解決方案。通過(guò)AES硬件加密、PCROP讀寫保護(hù)、MPU內(nèi)存管理等技術(shù)的結(jié)合,它為物聯(lián)網(wǎng)設(shè)備提供了全方位的安全防護(hù),確保數(shù)據(jù)、固件、系統(tǒng)在各個(gè)層面上的安全
    的頭像 發(fā)表于 09-06 17:37 ?512次閱讀
    淺談SOC片上系統(tǒng)LoRa-<b class='flag-5'>STM32</b>WLE5數(shù)據(jù)安全防御<b class='flag-5'>機(jī)制</b>

    請(qǐng)問(wèn)D類功放的橋逆變加入變壓器的作用是什么?

    請(qǐng)問(wèn)D類功放的橋逆變加入變壓器的作用是什么? 想做一款100W的功放,看到很多都是功放IC直接LC濾波,但是也有一些方案是隔離橋的變壓器之后用LC濾波,想了解一下問(wèn)什么會(huì)有變壓器這種方案? 多謝
    發(fā)表于 08-15 06:42

    申威終端主機(jī)G701

    主機(jī)
    jf_67464575
    發(fā)布于 :2024年06月11日 08:53:30

    使用USBUART組件與主機(jī)PC通信,如果在串行端口打開(kāi)的情況下終止固件,主機(jī)端為什么會(huì)報(bào)錯(cuò)?

    我正在使用 USBUART 組件與主機(jī) PC 通信,我一直在尋找某種機(jī)制來(lái)關(guān)閉 MCU 端的串行端口,或者至少通知主機(jī)我將關(guān)閉端口。 我遇到過(guò)這樣一個(gè)問(wèn)題:如果在串行端口打開(kāi)的情況下終止固件(如重置
    發(fā)表于 06-03 08:41

    求助,關(guān)于stm32應(yīng)用bootloader主機(jī)端接收ACK的問(wèn)題求解

    最近接手了一個(gè)學(xué)長(zhǎng)所做的編程板程序。其中想用GO命令實(shí)現(xiàn)程序在目標(biāo)新品的ram區(qū)運(yùn)行功能。發(fā)送0x21+0xDE后返回ACK正常,但是發(fā)送起始地址和校驗(yàn)和之后很長(zhǎng)時(shí)間主機(jī)未收到ACK或者NACK。我
    發(fā)表于 05-17 06:45

    電容器儲(chǔ)能機(jī)制詳解

    電容器,作為電子元件的重要組成部分,其儲(chǔ)能機(jī)制對(duì)于理解電路運(yùn)行、提高能量轉(zhuǎn)換效率以及推動(dòng)科技發(fā)展具有至關(guān)重要的作用。本文將對(duì)電容器的儲(chǔ)能機(jī)制進(jìn)行深入的探討,包括其基本結(jié)構(gòu)、儲(chǔ)能原理、儲(chǔ)能類型以及應(yīng)用領(lǐng)域等多個(gè)方面。
    的頭像 發(fā)表于 05-16 17:50 ?1560次閱讀

    STM32F107做USB主機(jī)鍵盤,鍵盤上那3個(gè)LED燈的功能怎么按都不起作用是怎么回事?

    STM32F107做USB主機(jī)讀取鍵盤按鍵數(shù)值用串口調(diào)試助手顯示都很正常,只是鍵盤上那3個(gè)LED燈的功能怎么按都不起作用,求大神指點(diǎn)
    發(fā)表于 05-14 06:56

    STM32F0作為I2c的從機(jī)時(shí),響應(yīng)主機(jī)的讀命令,如何知道主機(jī)發(fā)回的ACK還是No ACK?

    如題, 請(qǐng)教各位大神, STM32F0作為I2c的從機(jī)時(shí)(硬件IIc,中斷方式), 響應(yīng)主機(jī)的讀命令, 發(fā)送了一個(gè)字節(jié)后 , 如何知道主機(jī)發(fā)回的ACK還是No ACK , 范例里面都是一個(gè)字節(jié)的, 如果
    發(fā)表于 05-11 09:10

    關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼

    有人通過(guò)公眾號(hào)微信留言,詢問(wèn)是否有關(guān)于STM32 DMAMUX模塊具體的應(yīng)用示例代碼。同時(shí),個(gè)人也發(fā)現(xiàn),雖然STM32片內(nèi)的DMAMUX不是什么新模塊,似乎還是很多人并不太熟悉。這里借機(jī)聊聊這方面的內(nèi)容,重點(diǎn)演示相關(guān)功能的實(shí)現(xiàn),
    的頭像 發(fā)表于 03-25 09:15 ?2413次閱讀
    <b class='flag-5'>關(guān)于</b><b class='flag-5'>STM32</b> DMAMUX模塊具體的應(yīng)用示例代碼

    stm32h750既要實(shí)現(xiàn)主機(jī),也要實(shí)現(xiàn)從機(jī)功能,要怎么實(shí)現(xiàn)呢?

    STM32_USB_Device_Library和STM32_USB_Host_Library。請(qǐng)問(wèn)下,H750既要實(shí)現(xiàn)主機(jī),也要實(shí)現(xiàn)從機(jī)功能,要怎么實(shí)現(xiàn)呢?有什么資料可以參考下嗎?
    發(fā)表于 03-19 06:46

    如何將CYW54590與STM32主機(jī)處理器連接?

    將基于CYW54590的WiFi/BLE模塊(如 muRata的2BZ型)連接到STM32主機(jī)處理器有什么指導(dǎo)?
    發(fā)表于 03-01 07:18

    橋驅(qū)動(dòng)電路的作用及設(shè)計(jì)要點(diǎn)

    橋驅(qū)動(dòng)電路根據(jù)控制信號(hào)的輸入,在適當(dāng)?shù)臅r(shí)機(jī)控制高側(cè)和低側(cè)開(kāi)關(guān)器件的導(dǎo)通與截止。通過(guò)精確控制開(kāi)關(guān)的狀態(tài),橋驅(qū)動(dòng)電路可以控制電源電壓的輸出和輸出功率的調(diào)節(jié)。
    的頭像 發(fā)表于 02-05 18:17 ?6485次閱讀
    <b class='flag-5'>半</b>橋驅(qū)動(dòng)電路的<b class='flag-5'>作用</b>及設(shè)計(jì)要點(diǎn)
    RM新时代网站-首页