STM8 AD转换
<tbody></tbody>
大部分STM8内部带有AD,本节以使用STM8S105的内部AD为例,给出AD转换中断程序。 | |
---|---|
<tbody></tbody>
| |
<tbody></tbody>
/********************************************************************* 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="https://wiki.diustou.com/" style="color: rgb(7, 66, 184);">http://www.waveShare.net 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 说 明: 若用于商业用途,请保留此段文字或注明代码来源 深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
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); } } | |
<tbody></tbody>
|