杰发这款开发板的ADC参考手册写的不错。我以前一直对什么是规则组什么是注入组不太明白。而看了杰发的参考手册。有点明白了。
毕竟我工作中没有与ADC相关的程序,所以对我来说ADC仍然缺少实践。
给我的印象ADC共分八种模式,而这八种模式,用什么管脚,把管脚分到哪个组是自由分配的
我跑了一下ADC_STOP_Mode例程。以下是运行结果:
发现可以做一个模拟开关。
主要在初始化部分,我给它分配到0-5个数量级。那么就相当于关机
/*! Ä£Äâ¼à¿ØÅäÖà */
amoConfig.AMOTriggerMode = ADC_AMO_TRIGGER_LEVEL; /*! µçƽ´¥·¢Ä£Ê½*/
amoConfig.AMOInterruptEn = ENABLE; /*! AMOÖжÏʹÄÜ*/
amoConfig.AMORegularEn = ENABLE; /*! ¹æÔò×éͨµÀ¼à¿ØʹÄÜ*/
amoConfig.AMOInjectEn = DISABLE; /*! ×¢Èë×éͨµÀ¼à¿ØÈ¥ÄÜ*/
amoConfig.AMOSingleModeEn = ENABLE; /*! µ¥Í¨µÀʹÄÜ*/
amoConfig.AMOSingleChannel = ADC_CH_1; /*! ¼à¿ØͨµÀÅäÖÃ*/
amoConfig.AMOHighThreshold = AMO_HIGH_VALUE; /*! ¼à¿Øµçѹ¸ß·§Öµ£¬´óÓÚ¸ÃÖµ»áÖÃλAMO±êÖ¾£¨µçƽ´¥·¢Ä£Ê½£©£¬»òÖÃλAAMO±êÖ¾£¨±ßÑØ´¥·¢Ä£Ê½£©¡£*/
amoConfig.AMOLowThreshold = AMO_LOW_VALUE; /*! ¼à¿ØµçѹµÍ·§Öµ£¬µÍÓÚ¸ÃÖµ»áÖÃλAMO±êÖ¾£¨µçƽ´¥·¢Ä£Ê½£©£¬»òÖÃλNAMO±êÖ¾£¨±ßÑØ´¥·¢Ä£Ê½£©¡£*/
ADC_SetAnalogMonitor(ADC0, &amoConfig); /*! ÅäÖüĴæÆ÷*/
ADC_SoftwareStartRegularConvert(ADC0); /*! Èí¼þ´¥·¢¹æÔò×é²ÉÑù*/
就是amoConfig.AMOHighThreshold 设为5,而amoConfig.AMOLowThreshold设为0,把判断按键去了,这样就相当于一个开关了,我可以象老式收音机一样打开和关闭开发板了
而这两个值都在宏定义里:
/* ============================================ Define ============================================ */
#define AMO_HIGH_VALUE (0x5) /*! ¼à¿Øµçѹ¸ß·§Öµ*/
#define AMO_LOW_VALUE (0x0) /*! ¼à¿ØµçѹµÍ·§Öµ*/
|