<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > arm串口實(shí)現 printf 和scanf函數

arm串口實(shí)現 printf 和scanf函數

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏
問(wèn)題描述:arm串口實(shí)現scanf和printf函數實(shí)現輸入一串十進(jìn)制數字換成十六進(jìn)制輸出功能,但是我的板子測試就是出不來(lái),于是乎我要徹底搞定它,隨有紀。
1.首先代碼分析:用sourceinsight建立一個(gè)工程:
第一個(gè)文件Ctype.h,注意不會(huì )處理EOF,即end of file。其中的宏定義定義了_U _L_D_C_P_S_X_SP,分別代表的數字標識,這個(gè)數字標識在Ctype.c中用到。extern unsigned char _ctype[]作用是把_ctype[]聲明為外部的全局變量,不但包含這個(gè)頭文件的多個(gè)文件可以使用,也避免了重復包含這個(gè)變量的作用。
#define __ismask(x) (_ctype[(int)(unsigned char)(x)]) 作用是_ismask這個(gè)函數對輸入的參數進(jìn)行一個(gè)unsigned char轉化到int類(lèi)型的。
#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0) 作用看名字應該是判斷是是否是一個(gè)數字,不過(guò)我看了ascII表看了1 2 4 位發(fā)現沒(méi)什么特別。
第二個(gè)文件Ctype.c,里面的_ctype里面存的全是八位的獨熱碼,一共256個(gè)
第三個(gè)文件Div64.h,The semantics of do_div() are,意思是這個(gè)函數的語(yǔ)義是。
#ifdef __ARMEB__
#define __xh "r0"
#define __xl "r1"
#else
#define __xl "r0"
#define __xh "r1"
#endif
這段代碼的意思是如果定義了arm的endbig則用32位的r0寄存器保存x的高位,同樣的道理else應該清楚了。
再往下:#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endifnt"表示如果x y 不相等,則會(huì )執行.err,而后結束這個(gè)if分支。
直接看printf這個(gè)函數的實(shí)現,其中參數列表中有省略號,這是c語(yǔ)言中表示參數不確定的意思。


關(guān)鍵詞: arm串口printfscanf函

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>