在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > arm串口實現(xiàn) printf 和scanf函數(shù)

      arm串口實現(xiàn) printf 和scanf函數(shù)

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


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

      評論


      技術(shù)專區(qū)

      關(guān)閉