本节内容需要使用uart打印信息,关于uart的使用参考下面链接的帖子
https://bbs.21ic.com/icview-3427358-1-1.html
新建工程项目
关于IO的使用为板载LED和按钮,IO配置如下
上述配置好随时可以用于测试和指示灯。也可以巩固之前几个帖子中的内容
接下面启用ADC
时钟选择
系统时钟默认是内部高速时钟,可通过配置位设置为16MHz或20MHz,设置为16MHz可以方便分频出整数主频时钟
当时钟配置到16MHz时候,串口的波特率设置在9600就没有误差了。
开发板的引脚图上给的有ADC使用的引脚,实际可选的更多
我们先用默认的这个AIN0
配置上采用默认的配置,先进行测试
ADC的结构如下图所示
具备可选的3个参考电压
内部参考电压貌似可以配置
不过在MCC暂时没看到配置位置
#include "mcc_generated_files/system/system.h"
#include"mcc_generated_files/timer/delay.h"
/*
Main application
*/
unsigned char i=0;
unsigned char sw_flag=0;
void sw_int_handler(void)
{
sw_flag++;
}
int main(void)
{
SYSTEM_Initialize();
SW_SetInterruptHandler(sw_int_handler);
printf("%02d Hello:%02d\n",i,sw_flag);
Enable_global_interrupt();
while(1)
{
i++;
if(i>=100) i=0;
DELAY_milliseconds(1000);
ADC0_ConversionStart();
YELLOW_LED_Toggle();
if(sw_flag>0)
{
printf("%02d Hello:%02d\r\n",i,sw_flag);
sw_flag=0;
}
else
{
// if(ADC0_IsConversionDone())
{
printf("ADC AIN0:%d----%x\r\n",ADC0_ConversionResultGet(),ADC0_ConversionResultGet());
}
}
}
}
编译测试,效果良好,修改为VDD作为参考电压
测试效果
|