⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc12.c

📁 STR71x平台下实现ADC(数模转换)编程
💻 C
字号:
// adc12.c
#include "adc12.h"

/*******************************************************************************
* 说明:ADC12_Init函数,初始化ADC
* 参数:无
* 返回值:无
*******************************************************************************/
void ADC12_Init(void) {
  ADC12->CSR  = 0x00;
  ADC12->CPR = 0x01;
}

/*******************************************************************************
* 说明:ADC12_PrescalerConfig函数,配置预定标器
* 参数:无
* 返回值:无
*******************************************************************************/
void ADC12_PrescalerConfig(u32 Adc12_clk) {
  ADC12->CPR = (vu16) (RCCU_FrequencyValue(RCCU_PCLK)/(Adc12_clk*512*8));
}

/*******************************************************************************
* 说明:ADC12_ITConfig函数,允许/禁止中断
* 参数:NewState=ENABLE->允许中断
*       NewState=ENABLE->禁止中断
* 返回值:无
*******************************************************************************/
void ADC12_ITConfig(FunctionalState NewState) {
  if (NewState == ENABLE) {
    if (ADC12->CSR & 0x0040) {
        switch (ADC12->CSR & 0x30) {  // 置位中断位与通道选择等效
            case 0x00 : ADC12->CSR |= ADC12_IT0_Mask;  break;
            case 0x10 : ADC12->CSR |= ADC12_IT1_Mask;  break;
            case 0x20 : ADC12->CSR |= ADC12_IT2_Mask;  break;
            case 0x30 : ADC12->CSR |= ADC12_IT3_Mask;  break;
        }
    }
    else
       ADC12->CSR |= ADC12_IT_Mask;   // 循环方式,置位所有中断位
  }
  else
    ADC12->CSR &= ~ADC12_IT_Mask;     // 清除所有中断位
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -