AT32 WorkBench常用功能36--AT32F403A ADC抢占组转换多通道配置
ADC抢占组转换多个通道
本文主要介绍如何基于AT32 WorkBench配置ADC的抢占组,转换多个通道,并通过软件读取转换的数据
转换时序
硬件环境
软件环境
配置步骤
1打开AT32WorkBench新建AT32F403A工程
2配置系统时钟(如果使用默认内部HICK,跳过此步骤2)
2.1 打开外设CRM配置HEXT为时钟振荡器,如下图
2.2 打开时钟配置
3配置抢占组转换ADC CH1(PA1引脚)、ADC CH2(PA2引脚)、ADC CH3(PA3引脚)
4配置串口打印
4.1配置USART1
4.2 USART1引脚配置成PA9
4.3 开启串口打印
5点击“生成代码”生成MDK5代码工程
6配置ADC抢占通道转换相关应用代码
main.c的mian函数写法如下, 可以直接替换这部分代码
int main(void)
{
/* add user code begin 1 */
/* add user code end 1 */
/* system clock config. */
wk_system_clock_config();
/* config periph clock. */
wk_periph_clock_config();
/* nvic config. */
wk_nvic_config();
/* timebase config. */
wk_timebase_init();
/* usart1 already supports printf. */
/* init usart1 function. */
wk_usart1_init();
/* init adc1 function. */
wk_adc1_init();
/* add user code begin 2 */
/* add user code end 2 */
while(1)
{
/* add user code begin 3 */
adc_preempt_software_trigger_enable(ADC1, TRUE);
while(adc_flag_get(ADC1, ADC_PCCE_FLAG) == RESET);
adc_flag_clear(ADC1, ADC_PCCE_FLAG);
printf("adc data pa1:%d pa2:%d pa3:%d\r\n", adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_1), adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_2), adc_preempt_conversion_data_get(ADC1, ADC_PREEMPT_CHANNEL_3));
wk_delay_ms(1000);
/* add user code end 3 */
}
}
7将ADC引脚接以下电压
ADC CH1(PA1引脚)接3.3V
ADC CH2(PA2引脚)接1.6V
ADC CH3(PA3引脚)接0V
8在MDK5上编译,并下载代码到AT32F403A MCU 上
9复位运行AT32F403A MCU,用串口助手观看打印信息,ADC数据每1秒钟转换一次
|