本例程实现助学板电位器电压的AD采样,并把采样结果的高四位,送给四位LED显示。
由于自己电脑没串口,也没液晶屏,虽然在论坛上看到有网友通过USB也能实现跟电脑的通信,但自己又不会编写上位机软件,因此只能把AD结果的高四位送给led显示(我有通过NU-LINK调试,采样结果是正确的)。废话不多说,现在附上程序(我是参考BSP库的例程文件编写的)。
#include "NUC1xx.h"
#include "Driver\DrvADC.h"
#include "Driver\DrvGPIO.h"
#include "DrvSYS.h"
volatile uint8_t gu8AdcIntFlag;
/* ADC interrupt callback function */
void AdcIntCallback(uint32_t u32UserData)
{
gu8AdcIntFlag = 1;
}
/* Main function */
int main(void)
{
int32_t i32ConversionData;
DrvGPIO_InitFunction(E_FUNC_ADC1);
while(1)
{
DrvADC_Open(ADC_SINGLE_END, ADC_SINGLE_OP, 0x02, INTERNAL_HCLK, 1);
/* Reset the ADC interrupt indicator */
gu8AdcIntFlag = 0;
/* Enable the ADC interrupt and setup callback function */
DrvADC_EnableADCInt(AdcIntCallback, 0);
/* Start A/D conversion */
DrvADC_StartConvert();
/* Wait ADC interrupt */
while(gu8AdcIntFlag==0);
/* Disable the ADC interrupt */
DrvADC_DisableADCInt();
/* Get the conversion result of the specified ADC channel */
i32ConversionData = DrvADC_GetConversionData(1);
DrvGPIO_SetPortBits(E_GPA,i32ConversionData>>6);
}
} |