久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13146|回復: 3
收起左側

STM8S單片機printf函數重定向到串口

[復制鏈接]
ID:65608 發表于 2014-9-6 01:02 | 顯示全部樓層 |閱讀模式


printf函數是一個功能非常強大的函數,在單片機的調試過程中經常會要適時地輸出變量的值,這時printf函數是一個非常好的選擇;對于一般的單片機只有串口可以與外界進行通信,所以我們需要將printf函數重定向到串口;在這里會涉及到兩個關鍵問題:函數的重載和函數的重定向問題;

        首先是函數重載的問題;函數重載的主要用途之一是利用函數的多態性來實現用多種方法去實現同一接口功能;總而言之不管printf函數是多么的復雜,但是歸根結底使用的最低層的函數是putchar函數;purchar函數與具體的硬件結構打交道;所以實現重載就是根據具體不同的硬件結構去實現不同的putchar實體功能;所以在這里我們只需要修改putchar的實體,要注意函數重載的要求,函數名相同,但是形參不能完全相同;但是在STM8S中按照函數重載的要求定義了兩個putchar函數,庫自帶的putchar原型為:int putchar(char);我在文件中自定義文件為int putchar (unsigned char);編譯會出錯:redeclared external putchar;將函數原型改為
char putchar (char);編譯則能通過;那我只能使用的編譯器COMSIC不支持函數重載功能;

暫時先說到這里了。。。。


回復

使用道具 舉報

ID:68072 發表于 2014-10-29 16:51 | 顯示全部樓層
樓主你說完啊啊
回復

使用道具 舉報

ID:69003 發表于 2014-11-18 21:29 | 顯示全部樓層
過來學習一下。
回復

使用道具 舉報

ID:618760 發表于 2019-10-2 12:09 | 顯示全部樓層
原先的STDIO.H中已經有定義了char putchar(char c);
所以重新定義的時候,要不就自己的定義符合STDIO.H內的宣告,要不就修改STDIO.H的宣告。

遇到類似的問題,剛剛已經解決的,順便分享一下!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一一在线 | 成人午夜精品一区二区三区 | 欧美色影院 | 在线视频一区二区 | 亚洲精品在线观看视频 | 久久久爽爽爽美女图片 | 羞羞的视频在线 | 91秦先生艺校小琴 | 国产精品日产欧美久久久久 | 怡红院免费的全部视频 | 久久精品91久久久久久再现 | 亚洲色图综合网 | 久久久久国产精品午夜一区 | av在线影院| 久久久国产一区二区三区 | 欧美精品一区二区在线观看 | 欧美精品在线免费观看 | 成人a在线观看 | 青青草网站在线观看 | 国产999精品久久久久久绿帽 | 国产午夜精品久久久久免费视高清 | 欧美在线观看一区 | 国产免费自拍 | 国产精品久久久亚洲 | 91麻豆蜜桃一区二区三区 | 精产国产伦理一二三区 | 99re视频在线免费观看 | 无码日韩精品一区二区免费 | 91麻豆精品国产91久久久久久久久 | 久久久久无码国产精品一区 | 成人av播放 | 欧美精品tv | 最近中文字幕第一页 | 国产2区 | 不卡av在线 | 中文在线一区二区 | 精品亚洲一区二区 | 国产精品成人品 | 一区二区三区四区av | 欧美精品国产一区二区 | 亚洲激情在线观看 |