如果是ASCII碼錶內的符號值,那麼ASCII值本身就可以認為是 16進位制的(因為進位制只是給人看的,微控制器只有2進位制,沒有ASCII 和 Hex 之分),但如果是Hex值,經過ASCII傳送後,需要接收解出數值,那麼可以用這個函式:
uchar ASCII_ToHex(uchar ascii_data) //ASCII 轉 Hex 函式
{
uchar hex_data=0; //定義 Hex變數儲存轉換結果
if(ascii_data>=‘0’ && ascii_data<=‘9’) hex_data=ascii_data-‘0’; //若 轉換內容為 字元‘0-9’,則轉成對應數字0-9
else if(ascii_data>=‘a’ && ascii_data<=‘f’) hex_data=ascii_data-‘a’+10; //若 轉換內容為 字元‘a-f’,則轉成數字10-15
else if(ascii_data>=‘A’ && ascii_data<=‘F’) hex_data=ascii_data-‘A’+10; //若 轉換內容為 字元‘A-F’,則轉成數字10-15
return hex_data; //返回轉換結果,非以上字元,不在Hex(0-F)範圍內,預設0
}//