欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2328|回復: 6
收起左側

如何將單片機串口接收的ASCII碼轉成16進制?

[復制鏈接]
ID:761917 發表于 2022-12-1 19:46 | 顯示全部樓層 |閱讀模式
有沒有大佬知道如何將單片機串口接收的ASCII碼轉成16進制
回復

使用道具 舉報

ID:883242 發表于 2022-12-1 20:53 | 顯示全部樓層
  1. ch>'9'?ch-55:ch-'0'
復制代碼
回復

使用道具 舉報

ID:94031 發表于 2022-12-1 20:55 | 顯示全部樓層
串口接收的肯定是2進制(16進制),要變成ASCII碼要程序處理,你不處理就是16進制。
回復

使用道具 舉報

ID:161164 發表于 2022-12-1 21:12 | 顯示全部樓層
如你發的是"A5"
哪么中斷里的代碼就是:
Temp*=16;
Temp=SBUF-'0';
回復

使用道具 舉報

ID:384109 發表于 2022-12-1 23:04 | 顯示全部樓層
ASCII分大小寫和數字,判斷后減去對應的首字母或數字即可
回復

使用道具 舉報

ID:752974 發表于 2022-12-2 08:35 | 顯示全部樓層
僅供參考
//==============================================================
//把字符串轉換成整型數
//--------------------------- OK -----------------------------------
int a_to_int(uint8_t *str)
{
int temp = 0;
uint8_t  *ptr = str;  //ptr保存str字符串開頭
   
     if (*str == '-' || *str == '+')  //如果第一個字符是正負號
        str++;//則移到下一個字符
     while(*str != 0)
       {
         if ((*str < '0') || (*str > '9'))  //如果當前字符不是數字
             break;                         //則退出
         temp = temp * 10 + (*str - '0'); //如果當前字符是數字,則轉換成數字
         str++;      //移動數據指針到下一個字符
       }   
     if (*ptr == '-')     //如果字符是以'-'開頭,則轉換成相反數
         temp = -temp;
     return temp;
}
//========================================================================
回復

使用道具 舉報

ID:77589 發表于 2022-12-2 09:15 | 顯示全部樓層
munuc_w 發表于 2022-12-2 08:35
僅供參考
//==============================================================
//把字符串轉換成整型數

如果是想把接收到的十六進制字符串轉換成數字,這就是正解
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表