[AT32 WorkBench] AT32 WorkBench常用功能36--AT32F403A ADC抢占组转换多通道配置

[复制链接]
 楼主| ArterySW 发表于 2025-4-16 14:19 | 显示全部楼层 |阅读模式
AT32 WorkBench常用功能36--AT32F403A ADC抢占组转换多通道配置

ADC抢占组转换多个通道
本文主要介绍如何基于AT32 WorkBench配置ADC的抢占组,转换多个通道,并通过软件读取转换的数据
转换时序
0f5cb22517ab90eb0234c564a4d43111
硬件环境
  • AT-START-F403A

软件环境
  • AT32 Workbench
  • MDK5
  • 串口助手


配置步骤
1打开AT32WorkBench新建AT32F403A工程
31e9ec1eb5ddfeb91f93efa235ad149a

2配置系统时钟(如果使用默认内部HICK,跳过此步骤2)
2.1 打开外设CRM配置HEXT为时钟振荡器,如下图
711faaa33fc84f6526638ddd5b74fe5f

2.2 打开时钟配置
3bd64974160a26fe1f378e016cad9c8f

3配置抢占组转换ADC CH1(PA1引脚)、ADC CH2(PA2引脚)、ADC CH3(PA3引脚)
74585616416ca4f9ceb90c5ec43a8377

4配置串口打印
4.1配置USART1
f20c8f18de50876cef4807d03c61c9e0

4.2 USART1引脚配置成PA9
26b373759268990b94da6a3896a449c3

4.3 开启串口打印
470f326acbb9646c1b89eb65423c6acb

5点击“生成代码”生成MDK5代码工程
74abd11e308e026876f2243db27f8e7e
6配置ADC抢占通道转换相关应用代码
main.c的mian函数写法如下, 可以直接替换这部分代码
  1. int main(void)
  2. {
  3.   /* add user code begin 1 */

  4.   /* add user code end 1 */

  5.   /* system clock config. */
  6.   wk_system_clock_config();

  7.   /* config periph clock. */
  8.   wk_periph_clock_config();

  9.   /* nvic config. */
  10.   wk_nvic_config();

  11.   /* timebase config. */
  12.   wk_timebase_init();

  13.   /* usart1 already supports printf. */
  14.   /* init usart1 function. */
  15.   wk_usart1_init();

  16.   /* init adc1 function. */
  17.   wk_adc1_init();

  18.   /* add user code begin 2 */

  19.   /* add user code end 2 */

  20.   while(1)
  21.   {
  22.     /* add user code begin 3 */
  23.     adc_preempt_software_trigger_enable(ADC1, TRUE);
  24.    
  25.     while(adc_flag_get(ADC1, ADC_PCCE_FLAG) == RESET);
  26.     adc_flag_clear(ADC1, ADC_PCCE_FLAG);
  27.    
  28.     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));
  29.    
  30.     wk_delay_ms(1000);
  31.     /* add user code end 3 */
  32.   }
  33. }

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秒钟转换一次
ba26fc73cd3701562e0ac820b49c21e9

d23cb8a340ded7d69f752a7b36c319a2

AT32 WorkBench常用功能36--AT32F403A ADC抢占组转换多通道配置.zip

622.9 KB, 下载次数: 1

您需要登录后才可以回帖 登录 | 注册

本版积分规则

198

主题

304

帖子

17

粉丝
快速回复 在线客服 返回列表 返回顶部

198

主题

304

帖子

17

粉丝
快速回复 在线客服 返回列表 返回顶部