嵌入式学习小组
直播中

李静

7年用户 957经验值
私信 关注

求STM8S105内部AD转换的中断程序?


  大部分STM8内部带有AD,本节以使用STM8S105的内部AD为例,给出AD转换中断程序。   



回帖(4)

袁媛

2020-11-20 14:29:39
  系统功能
  大部分STM8内部带有AD,本节以使用STM8S105的内部AD为例,给出AD转换中断程序。
举报

吴继东

2020-11-20 14:32:03
硬件设计
  
  AD转换值低位,LED控制电路原理图
  
  AD转换值高位,LED控制电路原理图
举报

陈琳

2020-11-20 14:32:21
  软件设计
  /*********************************************************************
  微 雪 电 子 WaveShare http://www.waveShare.net
  目标系统: 基于STM8单片机
  应用软件: Cosmic CxSTM8
  说 明: 若用于商业用途,请保留此段文字或注明代码来源
  深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
  *********************************************************************/
  #include 《stm8s207s8.h》
  void Init_AD(void)
  {
  ADC_CSR=0x09; //选择通道
  ADC_CR2|=0x08; // 数据排列,右对齐
  ADC_TDRL=0x20;
  }
  void main(void)
  {
  PB_DDR = 0xff;
  PB_CR1 = 0xff;
  PB_CR2 = 0x00;
  PD_DDR = 0xff;
  PD_CR1 = 0xff;
  PD_CR2 = 0x00;
  PE_DDR &= (~0x40);
  Init_AD();
  while (1)
  {
  ADC_CR1|=0x01;
  for(i=0;i《100;i++); // 延时一段时间,至少7uS,保证ADC模块的上电完成
  ADC_CR1|=0x01; // 再次将CR1寄存器的最低位置1,开启AD转换
  while((ADC_CSR & 0x80)!=0x80); // 等待转换结束
  PB_ODR=ADC_DRH;
  PD_ODR=ADC_DRL;
  ADC_CSR&=(~0x80);
  }
  }
举报

崔家骁

2020-11-20 14:32:33
  系统调试
  用LED显示AD转换值,调“ADJ0.AD0”的可调电阻可改变AD转换值,观察它的变化。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分