久久人妻精品人妻视频五月天一区二区三区,,自慰午夜喷水久久久av国产成人a视频高在线,,欧美日韩免费专区在线97精品国产手机

  • <cite id="cwywg"></cite>
    <button id="cwywg"></button>
  • <button id="cwywg"><source id="cwywg"></source></button>
    <button id="cwywg"><tbody id="cwywg"></tbody></button>
  • <button id="cwywg"></button>
  • 
    
  • logo logo
    • BANNER
    • BANNER
    • BANNER
    您的位置 : 首頁 > 新聞資訊 > 技術(shù)支持
    sprintf在51單片機中轉(zhuǎn)換字符出錯問題解決
    發(fā)布者:江蘇瑞易通電子科技有限公司 人氣:724 發(fā)布日期:2021-04-23 10:10:40

    sprintf是C語言庫中具有轉(zhuǎn)換數(shù)據(jù)類型的功能函數(shù),出現(xiàn)一種情況,

    在51單片機中,定義unsigned  char   temp;

    然后 想用串口直接把temp 以十進制數(shù)是、形式打印出來,是先這樣轉(zhuǎn)換的 sprintf((char*)tem,"%d",temp);即先把temp轉(zhuǎn)換成十進制數(shù)字符tem,然后再通過串口輸出tem,然而串口輸出的竟然有亂碼,而且和temp的值也不對應(yīng);

    查找原因:原來%d,代表的是將int型數(shù)據(jù)轉(zhuǎn)換為十進制字符的作用,既然是int型,那他占用空間為至少2個字節(jié),那么我們定義的temp僅是unsigned char 占空間一字節(jié),所以函數(shù)在轉(zhuǎn)換時,會錯誤的轉(zhuǎn)換temp空間外的一字節(jié)空間的數(shù)據(jù),這是未知的數(shù)據(jù),所以會出現(xiàn)打印亂碼情況,那么把unsigned char temp;改為 unsigned int temp 后,再次測試

    果然輸出正確無誤!


    返回新聞列表