STM8S103之ADC

如何快速了解ADC,查看Reference manual中ADC registers章节,初步了解到ADC

  1. ADC buffer register和ADC data register
  2. Analog Watchdog + Analog Watchdog High Voltage threshold+
  3. EOC,完成采样后可以触发中断
  4. Continuous conversion和single conversion,Scan Mode
  5. External event触发?
  6. 错误状态Overrun Flag
  7. ADC schmitt trigger
  8. 左右对齐方式
  9. ADC时钟

然后进行通关,理解ADC这8个方面的知识,这时为了快速弄懂,refer to STM32开发指南V1.2中关于ADC的章节,然后弄懂了

  1. 模拟看门狗允许应用程序检测输入电压是否超出用户定义的高/低阈值
  2. Single conversion指的是只执行单次,对应的是Continous conversion,Scan mode扫描模式指的是如果设置了几个通道,依次扫描,此时最后一个通道完成才会产生EOC中断
  3. External event触发,指的是例如时钟event触发ADC中断,对应的是软件触发,软件程序中使能触发
  4. ADC时钟相关的有,ADC最大转换速率、ADC时钟,并且对于STM32系列,转换时间=采样时钟+12.5个ADC时钟周期(自己理解12.5周期为ADC处理需要的时间)

然后阅读STM8S_StdPeriph_Lib中关于ADC的例子程序,了解一般如何应用,可以看出ADC的设置还是比较简单的其中外部触发关闭

然后带着尚未解决的疑惑再次阅读Reference Manual

  1. ADC有5个通道,分别为2-6通道,没有1通道
  2. ADC buffer register和ADC data register,这两个register的区别不大。buffer register是缓冲
  3. External trigger有2个事件,一个是ADC_ETR的上升沿触发,查看STM8S103的datasheet,知道只有PB4和PD3;另外一个是Internal TIM1 TRGO event(待详细补充)
  4. ADC schmitter trigger是关于IO口上的触发器,ADC可以配置关闭AD相关IO口的触发器以节省能耗
  5. ADC时钟只介绍了ADC时钟的分频因子,最小卫2分频,关于转换速率没有提及
  6. 左右对齐

然后测试AD,AD测试的环境搭建,很简单,直接用直流源的正负分别接MCU的GND和AD输入,因为电源为3.3V,将直流源调整至3.3V左右,观测AD值,如果采样AD值为1023左右(stm8S103的AD为10位),则表明AD功能正常。

原文地址:https://www.cnblogs.com/smileintheday/p/6388839.html