[技术问答] 想问大家一个问题,关于新塘ML51的ADC

[复制链接]
1699|14
 楼主| 新塘初级用户 发表于 2020-8-8 17:41 | 显示全部楼层 |阅读模式
我用新塘的ML51做ADC通道1的模数转换,用的是例程。但是烧录到开发板后,我去测试他,本来是串口把模数转换的值打印出来,但我发现我把通道一接地了,他还是输出一样的东西,(测试过,接地后
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. //***********************************************************************************************************
  7. //  Website: http://www.nuvoton.com
  8. //  E-Mail : MicroC-8bit@nuvoton.com
  9. //***********************************************************************************************************

  10. //***********************************************************************************************************
  11. //  File Function: ML51 series ADC software trigger on shot demo code
  12. //***********************************************************************************************************
  13. #include "ML51.h"

  14. /******************************************************************************
  15. The main C function.  Program execution starts
  16. here after stack initialization.
  17. ******************************************************************************/
  18. void main ()
  19. {
  20.   unsigned int ADCRESULT;
  21. /*
  22. For UART0 P0.5 TXD output setting
  23. * include gipo.c in Library for GPIO mode setting
  24. * include uart.c in Library Setting for UART0
  25. */
  26.     MFP_P31_UART0_TXD;                              // UART0 TXD use P0.5
  27.     P31_QUASI_MODE;                                 // set P0.5  as Quasi mode for UART0 trasnfer
  28.     UART_Open(24000000,UART0_Timer3,115200);        // Open UART0 use timer1 as baudrate generate and baud rate = 115200
  29.     ENABLE_UART0_PRINTF;  
  30. /*
  31.   ADCS to trig ADC convert
  32.   * include adc.c in Library for ADC initial setting
  33. */
  34.     ADC_Open(ADC_SINGLE,1);                                        //Enable ADC_CH4
  35.     ADC_ConvertTime(3,7);
  36. /* find ADC result in ADC interrupt*/
  37.                                             
  38.     while(1)
  39.     {
  40.         set_ADCCON0_ADCS;                           // Software trig adc start
  41.         while((ADCCON0|CLR_BIT7)==CLR_BIT7);         // wait ADCF = 1;
  42.         ADCRESULT = (ADCRH<<4)+ADCRL;
  43.         printf("\n ADC result = 0x%X  ", ADCRESULT);
  44.         Timer0_Delay(24000000,100,1000);
  45.     }
  46.   
  47. }


通道一电压0V)

ADC_Simple.zip

700.96 KB, 下载次数: 1

 楼主| 新塘初级用户 发表于 2020-8-8 17:41 | 显示全部楼层
大家有遇到过这个现象的吗
 楼主| 新塘初级用户 发表于 2020-8-8 17:42 | 显示全部楼层
不管通道一接了啥,串口都是打印出了0XFFF
zhamatu 发表于 2020-8-9 20:01 | 显示全部楼层
要么是通道没有切换正确,要么是数据溢出或者处理不对。

评论

通道应该没错,用了例程里面的通道一,数据溢出应该也不可能,我都直接接地了  发表于 2020-8-10 11:23
电子xiaocainiao 发表于 2020-8-9 22:03 | 显示全部楼层
很可能就是初始化不对,建议参考官方的示例进行初始化,然后输出数据。

评论

就是参考官方例程  发表于 2020-8-10 11:21
jiekou001 发表于 2020-8-9 22:38 | 显示全部楼层
VREF没有接吧
jiekou001 发表于 2020-8-9 22:54 | 显示全部楼层
参考电压的端口没有接电压。

评论

用的是内部参考电压  发表于 2020-8-10 11:21
lin0406 发表于 2020-8-10 15:19 | 显示全部楼层
看不懂啊

评论

就是用官方的例程做AD转换,数据会溢出,直接接0电压,会偶尔有几个串口打印0,其他也全部溢出  发表于 2020-8-11 09:14
xxyyzz123 发表于 2020-8-11 11:21 | 显示全部楼层
不用新唐的东西,因为不好采购。
台系的,都很难合作
 楼主| 新塘初级用户 发表于 2020-8-13 09:57 | 显示全部楼层
问题解决了,原来是没有使能VREF
ENABLE_VREF_2560MV;
稳稳の幸福 发表于 2020-8-24 11:56 | 显示全部楼层
这个功能不错,还带内部多个参考电压可以选择。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

36

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部