打印
[STM8]

STM8S的ADC问题

[复制链接]
2787|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本人是刚学习STM8的菜鸟,今天自己照着师傅给的模板编写了一个STM8ADC的程序(温度传感器的),并且在数码管上显示,按照师傅给的程序运行,把温度传感器拔掉的话就显示0,而卧自己的显示0过一会儿显示其他值,然后下个时间显示0,如此循环。然后我就对照了两个程序师傅给的
void ADC1_START(u8 chanel)
{
        ADC1->CSR=chanel;  //选择通道4
        ADC1->CR1|=ADC1_CR1_ADON; //开启adc转换
}


我自己认为chanel既然是选择的第四通道就直接改为
void ADC1_START()
{
        ADC1->CSR=4;  //选择通道4
        ADC1->CR1|=ADC1_CR1_ADON; //开启adc转换
}

试了下发现问题不是出在数字上,而是void ADC1_START(),为什么会这样子啊?
我师傅的函数声明是void ADC1_START(u8 chanel),然后主程序里面是ADC1_START(CHANEL);ps:定义CHANEL为4,然后函数是
void ADC1_START(u8 chanel)
{
        ADC1->CSR=chanel;  //选择通道4
        ADC1->CR1|=ADC1_CR1_ADON; //开启adc转换
}


我的是声明void ADC1_START(void),主程序是void ADC1_START();然后函数是void ADC1_START()
{
        ADC1->CSR=4;  //选择通道4
        ADC1->CR1|=ADC1_CR1_ADON; //开启adc转换
}


我的显示就成我开头描述的一样了,一直0,79,0,79来回显示,而卧师傅的一直是0.然后我改成我师傅那样子,就对了。请问为什么会这样子啊。菜鸟很好奇啊。。求大家帮帮忙。


沙发
yuanquanquan| | 2013-8-3 20:04 | 只看该作者
新手  不懂  顶个

使用特权

评论回复
板凳
outstanding| | 2013-8-3 20:58 | 只看该作者
帮顶吧

使用特权

评论回复
地板
happy82828| | 2014-10-8 22:56 | 只看该作者
新手不懂跟着学

使用特权

评论回复
5
a2b3c4ddd| | 2014-10-10 20:49 | 只看该作者
不至于吧,改成这样试试:ADC1->CSR=(u8)4;  //选择通道4

使用特权

评论回复
6
Rain_King| | 2014-10-11 08:48 | 只看该作者
我觉得应该是其他问题...你这贴出来的这点代码,完全看不出来...........

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝