如果是ASCII碼錶內的符號值,那麼ASCII值本身就可以認為是 16進制的(因為進制只是給人看的,單片機只有2進制,沒有ASCII 和 Hex 之分),但如果是Hex值,經過ASCII發送後,需要接收解出數值,那麼可以用這個函數:
uchar ASCII_ToHex(uchar ascii_data) //ASCII 轉 Hex 函數
{
uchar hex_data=0 //定義 Hex變量存儲轉換結果
if(ascii_data>=Ɔ' && ascii_data<=Ə') hex_data=ascii_data-Ɔ' //若 轉換內容為 字符Ɔ-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
}//