智能车制作

标题: 新人求助,关于K60的问题:ADC0和某一个GPIO接时采样正确,换GPIO或者ADC均错误 [打印本页]

作者: qq250580245    时间: 2016-2-27 21:39
标题: 新人求助,关于K60的问题:ADC0和某一个GPIO接时采样正确,换GPIO或者ADC均错误
首先是端口配置是这样的
[attach]84026[/attach]于是我就将k60这样连接PTB0(ADC)连PTB20(GPIO)
[attach]84028[/attach]

然后得出来正常的采样,如图
[attach]84027[/attach]
不过在把ADC换到PTA17(ADC1_SE17),也就是第一根针的时候就不对了。数据完全是乱的(见后面一幅图)
怀疑是ADC出了问题,我又把ADC接回最开始的,然后把GPIO换了,输出也不对。
最奇怪的是,我把两个ADC都打开测试,PTB20(最开始采样正确的GPIO)换着接两个ADC的结果都一样,输出一直是PTB0所在的ADC的!也就是后来的ADC1_SE17不管接不接都是错的,而GPIO接到ADC1_SE17上时ADC0_SE8还是有正确的输出,
[attach]84029[/attach]

请问大家这是怎么回事?
代码如下:
  1.         gpio_set(PTB2,1);
  2.         //gpio_set(PTA17,1);
  3.         
  4.         gpio_set(PTB21,1);
  5.         gpio_set(PTB20,1);
  6.         gpio_set(PTB11,1);
  7.         var = adc_once   (ADC0_SE8, ADC_8bit);
  8.         var2 = adc_once   (ADC1_SE17, ADC_8bit);
  9.         printf("高电平:ADC0_SE8 %d ADC1_SE17 %d\n",var,var2);                              
  10.         DELAY_MS(500);                      //延时500ms

  11.         gpio_set(PTB2,0);
  12.         //gpio_set(PTA17,0);
  13.         
  14.         gpio_set(PTB21,0);
  15.         gpio_set(PTB20,0);
  16.         gpio_set(PTB11,0);
  17.         var = adc_once   (ADC0_SE8, ADC_8bit);
  18.         var2 = adc_once   (ADC1_SE17, ADC_8bit);
  19.         printf("低电平:ADC0_SE8 %d ADC1_SE17 %d\n",var,var2);                              
  20.         DELAY_MS(500);                      //延时500ms
复制代码


想请教大家这些问题:
1、为什么ADC正常工作时,GPIO更换之后是错误的
2、为什么GPIO正常工作时,更换ADC之后采样是错误的
3、为什么ADC接板子上的GND或者VCC采集数据还是杂乱的?不是应该是0或者255(或者固定的某个电压值)吗?



作者: qq250580245    时间: 2016-2-27 21:42
另外我换我室友的板子得出来的现象是一样的,不像是硬件问题
作者: kkwe123    时间: 2016-2-29 11:37
三个问题,我觉得应该是这样:
作者: kkwe123    时间: 2016-2-29 12:02
你最好把GPIOset()
adc_once()
还有程序里的引脚配置都贴出来

作者: kkwe123    时间: 2016-2-29 12:03
如果说是程序问题,你好好看看程序里引脚功能的具体配置
作者: qq250580245    时间: 2016-2-29 19:52
kkwe123 发表于 2016-2-29 12:03
如果说是程序问题,你好好看看程序里引脚功能的具体配置

感谢,已解决问题,最后发现是连线问题。被自己坑惨了




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2