a=AdcResult.ADCRESULT0>>4; scia_xmit(a);
b=AdcResult.ADCRESULT0<<4; scia_xmit(b);
拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA 10 EA EA 10 10 等不是想要的结果
谢谢
Chen Jones:
能详细说一下吗? 没太看明白。
你直接看一下AdcResult.ADCRESULT0 这个寄存器里面的数据就可以了。
然后在观察窗口输入a 和b, 就分别知道a和b的值了
输出的结果就应该是a和b
a=AdcResult.ADCRESULT0>>4; scia_xmit(a);
b=AdcResult.ADCRESULT0<<4; scia_xmit(b);
拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA 10 EA EA 10 10 等不是想要的结果
谢谢
xiaoping wang:
回复 Chen Jones:
a=AdcResult.ADCRESULT0>>4; scia_xmit(a);
b=AdcResult.ADCRESULT0<<4; scia_xmit(b);
拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA 10 EA EA 10 10 等不是想要的结果
谢谢
Mak he:
scia_xmit(a); 发送的是低八位,SCITXBUF是个8位的寄存器;
a=AdcResult.ADCRESULT0>>4; scia_xmit(a);
b=AdcResult.ADCRESULT0<<4; scia_xmit(b);
拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA 10 EA EA 10 10 等不是想要的结果
谢谢
Joey Mao:
根据你所说,看到的结果寄存器中值是0EA1,然后执行
a=AdcResult.ADCRESULT0>>4; scia_xmit(a);
b=AdcResult.ADCRESULT0<<4; scia_xmit(b);
串口助手得到的结果就是EA 10;
如果要得到0E A1,应该是
a=AdcResult.ADCRESULT0>>8; scia_xmit(a);
b=AdcResult.ADCRESULT0; scia_xmit(b);
函数scia_xmit(a)是发送结果寄存器的低八位,对于16位数据需要先进行移位、或&0xff 等处理
a=AdcResult.ADCRESULT0>>4; scia_xmit(a);
b=AdcResult.ADCRESULT0<<4; scia_xmit(b);
拟采用这个语句将adc采集的信息通过串口通信在串口调试助手上显示,结果是如结果寄存器中的值为0EA1时,想让其显示值为EA10,但显示会是EA 10 EA 10 EA EA 10 10 等不是想要的结果
谢谢
xiaoping wang:
回复 Joey Mao:
谢谢
我发现用那种方法得到的结果不稳定,得到0EA1 0E A1 不难这个我已经实现了
但用这个方法得到的结果会出现重复的值 如0E 0E 0E A1 0E A1 A1等
我后来准备写一个类似于printf 的函数解决这个问题 直接调用printf函数会显示0x2b12 超过了0x1000的存储范围
我又发了个帖子
TMS320F28035 adc转换结果在电脑上显示
那里有我准备参考的程序