金牌会员
- 积分
- 2084
- 威望
- 1038
- 贡献
- 612
- 兑换币
- 643
- 注册时间
- 2013-8-23
- 在线时间
- 217 小时
|
看野火三天入门 dac实验adc检测时,串口显示会有50的误差,这怎么解释啊
void main(void)
47. {
48. u16 i=0;
49. u16 ADresult;
50. u8 com=0;
51.
52. dac_once_init(DAC0,VDDA); //初始化DAC0
53.
54. adc_init(ADC0,SE14); //初始化ADC0_SE14 ,从adc.h里的表格就可以看到ADC0_SE14对应为PTC0
55.
56. while(1)
57. {
58. printf("\n请发送 '+' 或 '-' 来控制电压增减。发送其他则保存不变");
59. com = uart_getchar(FIRE_PORT); //等待串口命令
60.
61. switch(com) //通过串口来控制
62. {
63. case '+':i+=500;break;
64. case '-':i-=500;break;
65. default:break;
66. }
67.
68. if(i>=0x1000) i=0; //12bit
69.
70. dac_once_convert(DAC0,i); //DAC转换
71. printf("\nDAC转换的值为:%d",i); //串口打印转换值
72.
73. ADresult = ad_once(ADC0,SE14,ADC_12bit); //读取 ADC0_SE14 ,12位精度
74. printf("\n读取到ADC值为:%d \n",ADresult); //串口打印转换值
75. }
76. }
为什么会约50的误差? 这怎么解释啊
|
|