女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

STM32中使用printf打印串口數據的實現原理及方法

ss ? 來源:CSDN塵埃世界、Foresights ? 作者:CSDN塵埃世界、Fo ? 2021-07-22 11:12 ? 次閱讀

STM32中使用printf打印串口數據的實現原理

在C庫中,printf()等輸出流函數都是通過fputc()這個函數實現的,所以我們通過重映射的方式,修改這個函數的定義使它輸出在STM32的寄存器中,便可以實現使用printf()函數在STM32串口上輸出數據的功能。

盤點一下實現printf()函數打印字符串重定義到USART1的方法

方法一

1添加包含printf()函數的頭文件:#include “stdio.h”

2.重寫 stdio.h 頭文件中的 int fputc(int ch, FILE *f) 函數

3.將該函數” int fputc(int ch, FILE *f) “放在main()函數能夠調用到的文件中,KEIL-》Options for Target’xxx’-》Target-》Code Generation,勾選Use MicroLIB

方法二

//加入以下代碼,支持printf函數,而不需要選擇use MicroLIB

#if 1

#pragma import(__use_no_semihosting)

//標準庫需要的支持函數

struct __FILE

{

int handle;

};

FILE __stdout;

//定義_sys_exit()以避免使用半主機模式

_sys_exit(int x)

{

x = x;

}

//重定義fputc函數

int fputc(int ch, FILE *f)

{

while( !(USART1-》SR & (1 《《 7)) );

USART_SendData(USART1,(uint8_t)ch);

return ch;

}

#endif

整合自:CSDN塵埃世界、Foresights

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Printf
    +關注

    關注

    0

    文章

    84

    瀏覽量

    14077
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    【RA-Eco-RA4M2開發板評測】使用RA4M2的串口實現任意任意類型任意長度的數據接收,并將接收到的數據顯示在串口助手上

    () == REV_OK) { //判斷串口是否數據接收完成 printf(\"%s\\\\r\\\\n\", U1_RxBuff);//打印收到的
    發表于 05-04 14:11

    如何在熱敏打印實現圖片的灰階打印效果嗎?

    誰知道如何在熱敏打印實現圖片的灰階打印效果。 現在基本上文字打印,圖片打印功能都已開發結束,
    發表于 04-03 08:40

    PRINTF函數無法打印出浮點數內容是為什么?

    1、MCXN947低功耗adc,歷程中使用官方提供的PRINTF無法打印出浮點數內容。 2、同樣在mcuxpresso ide 也不可以打印浮點數,這是為什么呢? 3、使用的歷程是lp
    發表于 03-20 08:06

    【瑞薩RA2L1入門學習】02. 串口打印 ADC 檢測電壓

    來識別處理這些數據。 【串口打印打印最常用的方法printf,所以要解決的問題是將
    發表于 03-07 11:52

    【RA-Eco-RA2L1-48PIN-V1.0開發板試用】——使用串口輸出打印printf實現

    上一篇我講解了使用JINK RTT來實現串口輸出打印printf函數功能, 本次測評我來講解另外一種串口
    發表于 01-23 12:20

    【RA-Eco-RA2L1-48PIN-V1.0開發板試用】——使用Jlink的RTT實現串口打印功能

    能干瞪眼了?????? 當然不行啊,剛好JLINK自帶的RTT就能彌補這個缺陷,它能進行串口printf打印的所有功能。 本期測評就讓我來給大家講解一下使用JLINK的RTT實現
    發表于 01-23 11:33

    stdio.h實現printf函數?

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

    【敏矽微ME32G070開發板免費體驗】使用JLINK的RTT功能實現類似串口printf打印功能

    收到這款敏矽微ME32G070開發板后,我發現我的這款板子是壞的,串口打印部分不能打印,我先燒錄了demo文件夾里的串口打印
    發表于 12-15 20:30

    51單片機為什么很少出現printf的身影

    51單片機為什么很少出現 printf 的身影?是用不了嗎? 不是的,51單片機可以用 printf,只是不建議使用。 平時我們在操作系統上寫C語言代碼,使用 printf 可以把
    的頭像 發表于 12-03 10:46 ?1125次閱讀
    51單片機<b class='flag-5'>中</b>為什么很少出現<b class='flag-5'>printf</b>的身影

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

    概述 本文利用中斷實現串口不定長接收(非DMA),使用HAL庫,將接收的數據打印出去。 DMA接收請查看: https://blog.csdn.net/qq_24312945/arti
    發表于 09-06 16:48

    STM32CUBEMX(6)--移植雅特力AT32F403AVGT7,雙串口通過DMA方式接收不定長數據

    每個外設都需要實現自己的本地數據存儲)相比,DMA解決方案在硅片成本和功耗方面的成本較低。 根據使用的產品型號的不同,有一個或兩個DMA模塊。 本篇文章主要介紹如何使用STM32CubeMX
    發表于 09-06 16:37

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

    。 本篇文章主要介紹如何使用STM32CubeMX實現串口DMA讀取,并且打印出去。QQ群:615061293。 硬件準備 首先需要準備一個開發板,這里我準備的是NUCLEO-F03
    發表于 09-04 11:48

    esp32c3能不能將串口打印函數重定向到自己軟件模擬的uart上?

    模擬uart,用于打印日志;請問這種做法可以實現嗎?可以將打印函數重定向到該模擬uart嗎?如果可以,麻煩指導一下重定向需要修改哪幾個函數? ps:打印的函數主要涉及到
    發表于 06-20 06:32

    STM32F1HAL TIM2定時printf打印出現丟數值的原因?

    芯片:STM32F103C8T6環境:STM32CubeMX和STM32CubeIDE庫:STM32F1HAL問題:TIM2定時5秒-&gt;UART1
    發表于 06-04 08:03

    STM32CubeIDE printf浮點數,浮點數丟失數值的原因?

    1、芯片:STM32F103C8T62、環境:STM32CubeIDE3、問題:printf浮點數,浮點數數值丟失如 float A=25.6666;float B=24.7777;實際打印
    發表于 06-03 07:07