求助:如何使用串口发送十六进制字符串.

2020-02-01 16:17发布

首先,我在这里获得了ADC数值.
ADC_CONTR = 0xE8;//CH1
while (!(ADC_CONTR&0x10));
return ADC_RES<<8|ADC_RESL;  //10位ADC

得到一个数值,比如0xA502,我要用串口发送一个数值到电脑,但是他要显示的就是转换成10进制,显示成字符串,串口我已经调好,

QQ截图20130124161236.png (16.26 KB, 下载次数: 0) 下载附件 2013-1-24 16:12 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
wtfthprgw
2020-02-03 03:15
你要先计算出AD值的10进制是多少。比如说是45542。4.5542V是吧?在程序中是没有小数点的。
要把45542拆开成4  5  5  4  2分别发送。
给你个程序自已看下。
//************************AD转换计算
ADC=ADC/1024.000*5.000;
e=ADC*100;

////////////////////4.984
a=e/1000|0x30;////4
e=e%1000;/////984
b=e/100|0x30;////9
e=e%100;//84
c=e/10|0x30;//8
d=e%10|0x30;///4
///////////////////////////////////把数据拆分开。比如4984拆为4.984
分别发送a,b,c,d就行了
SendData(a);  
SendData('.');  加入小数点
SendData(b);  
SendData(c);  
SendData(d);  

一周热门 更多>