有谁有关于stm8的ADC 的程序,给我发个

有谁有关于stm8的ADC 的程序,给我发个,第1张

ADC1的基本的单次转换

void InitADC()

{

ADC1->CR1 = 0x20 //漏告分频系数为4 单次转换模式 先不启动ADC转换

ADC1->CR2 = 0x08 //非外部触发 数据右对齐 禁止扫描模式

ADC1->CSR = 0x03 //禁止转换结束中断 设置转换通道为AIN3

ADC1->TDRL|= 0x08 //禁止AIN3施密特触发器功能

ADC1->CR1 |= 0x01 //第一返虚明次写1是从低功耗模式唤醒

}

unsigned int GET_AD()

{

unsigned int temph=0

unsigned char templ=0

ADC1->CR1 |= 0x01 //启誉咐动AD转换

while(!(ADC1->CSR&0x80)) //等待转换结束

ADC1->CSR &= ~0x80 //清除转换结束标志

templ = ADC1->DRL

temph = ADC1->DRH //读出AD转换结果

temph = ConTOINT(temph,templ)

return(temph)

}

这个ADC参考电压你可以在要求不严镇岩格的情况下,直接接单片机电源3.3V。如果要求高点的,你在3.3V与VDD及GND与VSS之间都串磁珠戚仿后加高旅纤小电容滤波提供给VDD与VSS当参考带电源使用,如果要求再高一点,你就外部使用高精密稳压芯片,比如3.3V的或者2.5V的单独给它供电最好。

1,ADC时钟是设为9M 2,ADC总转换时间=采样时间+12.5个ADC时钟周期(信号量转换大昌时间),而采样时间由寄存器设定,最低1.5ADC周期,最大239.5ADC周期,也就是你程序中袜余设置的55.5个采样周期。所以滚好扒ADC一次采样的总采样时间是55.5+12.5=68个ADC周期,...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12241464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存