一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

STM32中使用printf打印串口數(shù)據(jù)的實現(xiàn)原理及方法

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

STM32中使用printf打印串口數(shù)據(jù)的實現(xiàn)原理

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

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

方法一

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

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

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

方法二

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

#if 1

#pragma import(__use_no_semihosting)

//標準庫需要的支持函數(shù)

struct __FILE

{

int handle;

};

FILE __stdout;

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

_sys_exit(int x)

{

x = x;

}

//重定義fputc函數(shù)

int fputc(int ch, FILE *f)

{

while( ?。║SART1-》SR & (1 《《 7)) );

USART_SendData(USART1,(uint8_t)ch);

return ch;

}

#endif

整合自:CSDN塵埃世界、Foresights

編輯:jq

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

    關(guān)注

    0

    文章

    83

    瀏覽量

    14019
收藏 人收藏

    評論

    相關(guān)推薦

    PRINTF函數(shù)無法打印出浮點數(shù)內(nèi)容是為什么?

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

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

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

    【RA-Eco-RA2L1-48PIN-V1.0開發(fā)板試用】——使用串口輸出打印printf實現(xiàn)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    STM32CubeIDE printf浮點數(shù),浮點數(shù)丟失數(shù)值的原因?

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

    STM32CubeIde生成的工程,使用printf函數(shù)沒有調(diào)用_write和__io_putchar函數(shù),為什么?

    最近使用STM32CubeIde生成工程,就先做一個簡單的串口工程,使用NUCLEO-WBA52CG板子進行調(diào)試。 在初始化完畢后,使用printf打印log,重寫了int io_pu
    發(fā)表于 05-24 06:13

    【GD32H757Z海棠派開發(fā)板使用手冊】第九講 USART-printf打印實驗

    通過本實驗主要學習以下內(nèi)容: ?串口簡介 ?GD32H757串口工作原理 ?使用printf打印信息
    的頭像 發(fā)表于 05-15 11:39 ?1083次閱讀
    【GD32H757Z海棠派開發(fā)板使用手冊】第九講 USART-<b class='flag-5'>printf</b><b class='flag-5'>打印</b>實驗

    ESP8266與STM32通訊,串口通訊出現(xiàn)數(shù)據(jù)丟失的原因?

    函數(shù)的原因,串口只能打印:01 03 05 但我想調(diào)用數(shù)據(jù)7F 7A 應該如何修改這些函數(shù)或者有什么其他方法呢?謝謝大神指點{:4:} STM32
    發(fā)表于 05-14 06:17

    【GD32F470紫藤派開發(fā)板使用手冊】第九講 USART-printf打印實驗

    通過本實驗主要學習以下內(nèi)容: 串口簡介 GD32F470串口工作原理 使用printf打印信息
    的頭像 發(fā)表于 05-13 10:14 ?2160次閱讀
    【GD32F470紫藤派開發(fā)板使用手冊】第九講  USART-<b class='flag-5'>printf</b><b class='flag-5'>打印</b>實驗