【AT-START-M412测评】ADC 温度采集
本文介绍了雅特力 AT32M412 开发板实现 ADC 采集芯片内部温度,并串口打印的项目设计。
项目介绍
工程调试
- 打开 AT32 Work Bench 软件,选择工作空间,选择目标芯片
AT32M412CBT7 ,点击 新建 ;
- 使能 USART1 选项,选择
异步模式 ,配置 PA9 和 PA10 引脚为 USART1 模式;
- 进入 SYSTEM 模块,选择
USART1 串口打印;
由原理图可知,板载 AT-Link-EZ 调试器支持一组虚拟串口(VCP)与主控 AT32M412CBT7 的 USART1_TX/USART1_RX(PA9/PA10)对接。因此在配置串口通道时,需选择对板载调试器虚拟串口对应的 I/O 接口。


代码
打开工程后,进入 user 目录并打开 main.c 文件,添加关键代码
#include "at32m412_416_wk_config.h"
#include "wk_usart.h"
#include "wk_system.h"
int main(void)
{
wk_system_clock_config();
wk_periph_clock_config();
wk_nvic_config();
wk_timebase_init();
wk_usart1_init();
while(1)
{
/* add user code begin 3 */
printf("Hello World !\r\n");
wk_delay_ms(500);
/* add user code end 3 */
}
}
保存代码,重新构建工程,上传固件至板端,复位运行。
效果
打开串口调试助手,配置串口参数,打开串口,接收串口消息

工程测试
在完成前面关于串口打印字符串的工程调试项目的基础上,进一步实现 ADC 采集芯片温度并打印的项目设计。
工程创建
- 打开 AT32 Work Bench 软件,选择工作空间,选择目标芯片
AT32M412CBT7 ,点击 新建 ;
- 进入
外设 - ADC 选项进行参数配置;
- 使能内部温度传感器通道(IN16);
- 开启 ADC 普通组设置,采样时间选择 239.5 个 ADCCLK 周期;

- 使能 USART1 选项,选择
异步模式 ,配置 PA9 和 PA10 引脚为 USART1 模式;
- 进入 SYSTEM 模块,选择 USART1 串口打印;
- 其他参数均为默认,点击
生成代码 并打开项目。
工程代码
打开工程后,进入 user 目录并打开 main.c 文件,添加关键代码
#include "at32m412_416_wk_config.h"
#include "wk_adc.h"
#include "wk_usart.h"
#include "wk_system.h"
/* private define ------------------------------------------------------------*/
/* add user code begin private define */
#define ADC_VREF (3.3)
#define ADC_TEMP_BASE (1.28)
#define ADC_TEMP_SLOPE (-0.0043)
/* add user code end private define */
/* add user code begin 0 */
uint16_t ADC_Read(uint8_t channel)
{
adc_ordinary_software_trigger_enable(ADC1, TRUE);
while(adc_flag_get(ADC1, ADC_OCCE_FLAG) == RESET);
adc_flag_clear(ADC1, ADC_OCCE_FLAG);
return adc_ordinary_conversion_data_get(ADC1);
}
int main(void)
{
wk_system_clock_config();
wk_periph_clock_config();
wk_nvic_config();
wk_timebase_init();
wk_usart1_init();
wk_adc_common_init();
wk_adc1_init();
while(1)
{
/* add user code begin 3 */
uint16_t adc_temp = ADC_Read(ADC_CHANNEL_16);
printf("internal_temperature = %f deg C\r\n",(ADC_TEMP_BASE-(double)adc_temp*ADC_VREF/4095)/ADC_TEMP_SLOPE+25);
wk_delay_ms(1000);
/* add user code end 3 */
}
}
保存代码,重新构建工程,上传固件至板端,复位运行。
效果演示
打开串口调试助手,配置串口参数,打开串口,接收 ADC 采集的芯片内部温度信息

总结
本文介绍了雅特力 AT32M412 开发板通过 ADC 实现芯片内部温度采集,并串口输出的项目设计。包括工程调试,使用 AT32 Work Bench 软件快速建立工程并实现串口打印的流程,为 AT32M412 系列单片机的应用和快速开发提供了参考。 |