今天开发板到了。先测试了一下AD。
用例程:
下载用STLINK。
工程配置:
代码:#include "adc_sample.h"
/**
* main
*
* @param[in] none
* [url=home.php?mod=space&uid=266161]@return[/url] 0: success, other: error value
*
* [url=home.php?mod=space&uid=247401]@brief[/url]
*/
int main(void)
{
InitDelay();
InitDebug();
printf("\r\nAC7801x: ADC_Sample\r\n");
ADC_SampleSoftwareTrigerADC();
}
/**
* ADC_SampleSoftwareTrigerADC
*
* @param[in] void
* [url=home.php?mod=space&uid=266161]@return[/url] void
*
* [url=home.php?mod=space&uid=247401]@brief[/url] Timer定时触发规则组ADC_CHANNEL0单次采样。
*/
void ADC_SampleSoftwareTrigerADC(void)
{
ADC_init();
while(1)
{
//每次转换数据清零
memset(g_ADCValueBuffer, 0x00, sizeof(g_ADCValueBuffer));
memset(g_adcInjectValue, 0x00, sizeof(g_adcInjectValue));
ADC_SoftwareStartRegularConvert(ADC0); ///软件触发规则组采样
ADC_SoftwareStartInjectConvert(ADC0); ///软件触发规则组采样
udelay(8);//需要采样8个通道,延时8us以保证数据采样完成
sampleValueDeal();
printf("ADC regular group Sample value: %d\r\n", g_regularAverageSampleValue);
printf("ADC inject group Sample value: %d\r\n", g_injectAverageSampleValue);
mdelay(1000);
}
}
效果图:
|