主题中讨论的其他部件:Energia, MSP432WARE
工具/软件:Code Composer Studio
大家好,我们目前正在进行一个项目,但无法获得所需的读数。
我们正在测试一个二氧化碳检测器,它会发出模拟信号(假设我们只是模拟Energia上的()),但我们正在使用CCS作为将来的参考。
我们使用了MSP432Ware在单一转换重复下给出的示例
这是我们编写的代码
/* DriverLib包括*/
#include "driverlib.h"
/*标准包括*/
#include <stdint.h>
#include <stdbool.h>
静态易失性uint16_t curADCResult;
静态易失性浮点法正态ADCRes;
内部主(无效)
{
/*停止监视*/
MAP_WDT_A_HoldTimer();
curADCResult = 0;
Flashctl_setWaitState(flash_BANK0,2);
Flashctl_setWaitState(flash_Bank1,2);
PCM_setPowerState(PCM_AM_LDO_VCORE1);
cs_setDCOCenteredFrequency (CS_DCO_Frequency_48);
FPU_enableModule();
FPU_enableLazyStacking();
ADC14_enableModule();
ADC14_INITModule (ADC_CLOCKSOURCE_MCLK,ADC_PREDIVIDER_1,ADC_DIVIDER_4,0);
GPIO _setAsPeripheralModuleFunctionInputPin (GPIO_PORT_P5, GPIO_primary_module_function);//设置CO2传感器输入
ADC14_configureSingleSampleMode (ADC_MEM0,TRUE);
ADC14_configureConversionMemory (ADC_MEM0,ADC_VREFPOS_AVCC_VREFNEG_VSS,ADC_INPUT_A0,FALSE);
ADC14_enableSampleTimer(ADC_MANUAL_ITED);
ADC14_enableConversion();
ADC14_toggleConversionTrigger();
ADC14_enableInterrupt (ADC_INT0);
interrupT_enableInterrupt (INT_ADC14);
interrup_enableMaster();
GPIO_setAsOutputPin (GPIO端口P2,GPIO _PIN0);//红色
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN0);
GPIO _setAsOutputPin (GPIO端口P2,GPIO _PIN1);//绿色
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN1);
GPIO _setAsOutputPin (GPIO端口P2,GPIO _PIN2);//蓝色
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN2);
易失性UINT32_t u;
uINT32_t易失性I;
同时(1)
{
PCM_gotoLPM0();
i =(int)规范的ADCRes;
如果(I<=100)
{
GPIO_setOutputHighOnPin (GPIO端口P2,GPIO _PIN1);//绿灯亮起
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN2);
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN0);
}
否则,如果((i>100)&&(I<200))
{
GPIO_setOutputHighOnPin (GPIO端口P2,GPIO _PIN2);//蓝灯亮起
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN1);
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN0);
}
否则,如果(i>=200)
{
GPIO_setOutputHighOnPin (GPIO端口P2,GPIO _PIN0);//红灯亮起
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN1);
GPIO _setOutputLowOnPin (GPIO端口P2,GPIO _PIN2);
}
对于(u=1000;u>0;u--);
}
}
void ADC14_IRQHandler (void)
{
UINT64_t status = ADC14_getEnabledInterruptStatus();
ADC14_clearInterruptFlag (状态);
IF (ADC_INT0和STATUS)
{
curADCResult = ADC14_getResult(ADC_MEM0);
normalizedADCRes =(curADCResult * 5)/1.6384万;
ADC14_toggleConversionTrigger();
}
}
请帮助您提供有关此代码的建议,我们非常感谢您提供此优惠。 谢谢:D