打印
[STM8]

STM8L151单片机(32PIN)做ADC转出来的值不变

[复制链接]
3695|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wayne_2001|  楼主 | 2013-11-8 14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用STM8L151单片机(32PIN)做ADC实验, 在PD4(24pin)接了个电位器,转动电位器时,用万用表测,该脚有0-3.3V电压,但实际软件仿真时,第一次ADC1_DR的值是0x6e;之后就是4a.4b.4a这样的数据.(中间加一个断点)转动电位器,数据寄存器里的值一点变化都没有.弄了一天了,真不那里出了问题.请高手指教.下面是程序:

void  GPIO_Initial(void)
{
    PD_DDR=0x00;      //PD port selcet input mode
    PD_CR1=0x00;       //  悬浮输入
   PD_CR2=0x00;  
    CLK_PCKENR2|=0x01;        //外设门控时钟ADC1开启.

}



void ADC_Init(void)
{
   ADC1_CR1=0x00;            
   ADC1_CR2=0x00;            
   ADC1_CR3=0x07;          // select ADC channel 7 (PD7(24pin)就是ADC1_IN7通道)
  ADC1_TRIGR4=0x07;      // 禁止触发器7
}



main()
{
    WORD Buffer,i;
    BYTE  buf1;
    GPIO_Initial();
    ADC_Init();
    ADC1_CR1 = 0x43; // 转成8位数据,(这里也有一个问题:仿真时ADC_CR1=0x41,而不是0x43不知为何!!!!)

  for(;;)                     // 进入无限循环                              
  {
    for(i=0;i<100;i++);  //延迟>7us
    ADC1_CR1 |= 0x43;  //开启转换.,(这里也有一个问题:仿真是ADC_CR1=0x41,而不是0x43不知为何!!!!)

    while((ADC1_SR & 0x01)==0); // 等待ADC结束
         
    buf1=ADC1_DRL;   //读8位数据至buf1; 但是buf1 里的值就是不变.
  }
沙发
honami520| | 2013-11-9 15:40 | 只看该作者
这个问题很简单啊!楼主的写法很另类啊!用for循环来代替while。
如果是ADC转换,等待完成之后,也许需要清除标志位。再就是如果是单次转换模式的话,读完了之后还需要再次开启转换。
如果根据说的还搞不定,可以找我,我可以提供ADC转换的例子。

使用特权

评论回复
板凳
wayne_2001|  楼主 | 2013-11-12 08:11 | 只看该作者
网上关于STM8L系列的单片机历程还是较少的.因为我公司用的就是L系列,没办法.只能啃用户手册,最后还是搞定了.原来L系列和S系列的ADC内部寄存器有天壤之别.L系列的通道选择用的是ADC_SQR寄存器.在我的ADC_Init函数中加入下面两句,就搞定了.
        ADC1_SQR1=0x80;                        //disable DMA
        ADC1_SQR4=0x80;     //single conversion mode in the SQR4 select channel
现在又有一个新的问题,就是转换出来的值是8位的数据,如何将数据转成对应的电压.数据和电压之音的关系是怎样的?有没有什么公式?因为最终要显示在数码管上.就必须得将数据转成BCD码.还请指教.

使用特权

评论回复
地板
haitao10086| | 2013-11-12 09:54 | 只看该作者
清除ADC转换完成标志位,延时一段时间进行下一次转换

使用特权

评论回复
5
gt23010| | 2013-11-21 11:15 | 只看该作者
楼主,把你的STM8L151的工程文件给我一个呗

使用特权

评论回复
6
shcdz| | 2014-5-17 17:56 | 只看该作者
STM8L151C6T6 现货35K 低价出货,深航春电子,137-143-27748  QQ7927-65998

使用特权

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

本版积分规则

2

主题

5

帖子

0

粉丝