新手入门
- 积分
- 7
- 金钱
- 7
- 注册时间
- 2019-9-19
- 在线时间
- 1 小时
|
1金钱
用PC端串口软件读取ADC的转换值,发现如果将ADC结果寄存器(ADC_RES和ADC_RESL)的值直接打印输出是没有问题的,但是如果将其赋值给数组,再打印出来显示的值就不对了,请问直接将ADC_RES和ADC_RESL的值赋值给数组需要注意什么,为何存入数组再打印出来就有问题?
===========================
① 将ADC结果存入字符型数组(定义unsigned char txbuf[3];)再打印的代码:
打印结果是通道号 01、ADC_RES为 80、ADC_RESL为 00 ,这个打印出来的ADC结果不对。
while(1)
{
GetADC_Result(1); //1通道的ADC转换
txbuf[0] = 1; //将通道号赋值给数组第0个元素
txbuf[1] = ADC_RES; //将ADC的高8位赋值给数组第1个元素
txbuf[2] = ADC_RESL & 0X03; /将ADC的低2位赋值给数组第1个元素
SendUart(txbuf[0]); //发送通道号到PC
SendUart(txbuf[1]); //发送高8位ADC值到PC
SendUart(txbuf[2]); //发送低2位ADC值到PC
}
===================================
② 直接打印的代码:
打印结果是通道号 01、ADC_RES为 6B、ADC_RESL为03 ,这个打印结果没有问题,是正确的采样值。
while(1)
{
GetADC_Result(1); //1通道的ADC转换
SendUart(1); //发送通道号到PC
SendUart(ADC_RES); //发送高8位ADC值到PC
SendUart(ADC_RESL]); //发送低2位ADC值到PC
}
|
|