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

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

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

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

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

ss ? 來源:CSDN塵埃世界、Foresights ? 作者:CSDN塵埃世界、Fo ? 2021-07-22 11:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

盤點(diǎn)一下實(shí)現(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)

//標(biāo)準(zhǔn)庫需要的支持函數(shù)

struct __FILE

{

int handle;

};

FILE __stdout;

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

_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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Printf
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【RA4L1-SENSOR】+ RA4L1-SENSOR開發(fā)版之使用Jlink的RTT打印功能代替串口

    上一篇帖子我已經(jīng)實(shí)現(xiàn)了板子上的串口USART9進(jìn)行輸出打印,這篇帖子我采用另外一種串口打印
    發(fā)表于 06-09 09:03

    【RA4L1-SENSOR】+ RA4L1-SENSOR開發(fā)版串口打印功能printf實(shí)現(xiàn)

    很高興收到瑞薩RA生態(tài)工作室給與試用的RA4L1-SENSOR開發(fā)板,本期就來講解使用RA4L1-SENSOR開發(fā)板實(shí)現(xiàn)串口打印功能! 1。打開原理圖 可以知道板載的USB串口使用的是
    發(fā)表于 06-08 15:01

    【RA-Eco-RA4M2開發(fā)板評(píng)測】使用RA4M2的串口實(shí)現(xiàn)任意任意類型任意長度的數(shù)據(jù)接收,并將接收到的數(shù)據(jù)顯示在串口助手上

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

    如何在熱敏打印機(jī)實(shí)現(xiàn)圖片的灰階打印效果嗎?

    誰知道如何在熱敏打印機(jī)實(shí)現(xiàn)圖片的灰階打印效果。 現(xiàn)在基本上文字打印,圖片打印功能都已開發(fā)結(jié)束,
    發(fā)表于 04-03 08:40

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

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

    【瑞薩RA2L1入門學(xué)習(xí)】02. 串口打印 ADC 檢測電壓

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

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

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

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

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

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

    我們平時(shí)包含的 stdio.h 頭文件,里面是不是實(shí)現(xiàn)printf 函數(shù)? 為什么會(huì)有這個(gè)疑問?因?yàn)槊看问褂?printf,就得包含 stdio.h ,這就導(dǎo)致很多同學(xué)誤以為,stdio.h
    的頭像 發(fā)表于 12-18 10:28 ?607次閱讀

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

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

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

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

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

    概述 本文利用中斷實(shí)現(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ù)

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

    STM32CUBEMX(3)--ADC通過DMA方式采樣,USART打印

    影響。 DMA主要用于為不同的外設(shè)模塊實(shí)現(xiàn)集中數(shù)據(jù)緩沖存儲(chǔ)(通常在系統(tǒng)SRAM)。與分布式解決方案(其中每個(gè)外設(shè)都需要實(shí)現(xiàn)自己的本地數(shù)據(jù)
    發(fā)表于 09-04 14:08

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

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