使用 C++ 语言给 STM32 编写一个 Adc 类
我使用的STM32芯片:STM32F103ZET6
我们使用的STM32库版本:V3.5.0
注意:
想学习本套 STM32 C++编程 的专栏是有点门槛的。你需要有一点点 STM32 基础 和 一点点 C++ 语言基础。
完整的STM32 C++ Adc类 的下载地址可以在本篇博客的最下面找到。
Adc.cpp
#include "Adc.h"
using namespace stm32f10x;
Adc::Adc(ADC_TypeDef* ADCx, uint8_t ADC_Channel):adcx(ADCx), channel(ADC_Channel){
initialize();
start();
}
void Adc::initialize(){
switch(channel){
case 0:
a = new Gpio(PA, 0, GPIO_Mode_AIN); delete a; break;
case 1:
a = new Gpio(PA, 1, GPIO_Mode_AIN); delete a; break;
case 2:
a = new Gpio(PA, 2, GPIO_Mode_AIN); delete a; break;
case 3:
a = new Gpio(PA, 3, GPIO_Mode_AIN); delete a; break;
case 4:
switch((uint32_t)adcx){
case (uint32_t)ADC1:
case (uint32_t)ADC2:
a = new Gpio(PA, 4, GPIO_Mode_AIN); delete a; break;
case (uint32_t)ADC3:
a = new Gpio(PF, 6, GPIO_Mode_AIN); delete a; break;
}
break;
case 5:
switch((uint32_t)adcx){