打印
[STM8]

STM8单次扫描模式问题。

[复制链接]
6821|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wazhzlp|  楼主 | 2013-5-10 08:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wazhzlp 于 2013-5-10 09:06 编辑

下面是对ADC1的配置,我配置了3和5通道。程序都有注释。帮忙看看
这样的配置是否存在什么问题:
void Init_ADC1(void)
    {
    GPIO_Init(GPIOB, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);  // PB3设置为输入
    GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_IN_FL_NO_IT);  //PB5设置为输入

    /* Initialize ADC1 in RESET value */
    ADC1_DeInit();   //参数初始化
   
         /* Debug ADC1 scan mode */
        ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_3, ADC1_ALIGN_RIGHT);
                                                 //转换模式,通道,和对齐模式,这里选择3通道 单次转换,右对齐
        ADC1_SchmittTriggerConfig(ADC1_SCHMITTTRIG_CHANNEL3, DISABLE);
                                                 //关闭3通道的施密特触发功能
      
        ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_5, ADC1_ALIGN_RIGHT);
                                                  //转换模式,通道,和对齐模式,这里选择5通道 单次转换,右对齐
        ADC1_SchmittTriggerConfig(ADC1_SCHMITTTRIG_CHANNEL5, DISABLE);
                                                    //关闭3通道的施密特触发功能
        ADC1_ScanModeCmd(ENABLE);   //设置为扫描模式,这样配置之后就是单次扫描模式了
        ADC1_DataBufferCmd(ENABLE);   //这里配置的是开启数据缓冲区,可以把单次转换的数据放里面,等到每次接受之后取出来。
    ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE);    //开启转换结束中断。这样在每次但是扫描结束之后触发中断,然后对其进行处理。
     }

其实最有一条 ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE);没有使用,因为在手册里写的是:
不开中断也是可以EOC标志位被置位,也就是在后面的数据采集采用这样查询EOC标志位来参看是否转换完成。

这样的配置有问题吗?
请帮忙,谢谢

沙发
wazhzlp|  楼主 | 2013-5-10 08:50 | 只看该作者
本帖最后由 wazhzlp 于 2013-5-10 09:02 编辑

然后就是开启ADC1了。
void ADC1_START(void)
    {
   
    ADC1_Cmd(ENABLE);                         //唤醒ADC1
    Delay(1);                                        //延时一段时间,也可以用来设置多长时间做一次ADC
    ADC1_Cmd(ENABLE);                         //开始转换。
    }


也不知道这样开启是否存在问题?

使用特权

评论回复
板凳
mmuuss586| | 2013-5-10 08:53 | 只看该作者
没看出来。

使用特权

评论回复
地板
wazhzlp|  楼主 | 2013-5-10 09:01 | 只看该作者
mmuuss586 发表于 2013-5-10 08:53
没看出来。

有问题吗?有什么好的建议给我呢?

使用特权

评论回复
5
mmuuss586| | 2013-5-10 09:04 | 只看该作者
wazhzlp 发表于 2013-5-10 09:01
有问题吗?有什么好的建议给我呢?

用的什么型号啊。
我一般直接根据官方的参考程序,修改。
碰到有问题,再自己找原因。
对于AD,DA都比较简单的。
就以前调USB,FSMC花了些时间。

使用特权

评论回复
6
wazhzlp|  楼主 | 2013-5-10 09:08 | 只看该作者
mmuuss586 发表于 2013-5-10 09:04
用的什么型号啊。
我一般直接根据官方的参考程序,修改。
碰到有问题,再自己找原因。

我用的STM8S105,我是尝试在官网上找些例程但是发现他们的例程里没有关于单次扫描的,大概是我没有找对地方,请问在官网的那个地方下载例程呢。给个地址好吗?

使用特权

评论回复
7
IJK| | 2013-5-10 09:30 | 只看该作者
下载、安装IAR EWSTM8,里面应该有STM8S105 的ADC例程,应该可以参考。

使用特权

评论回复
8
wazhzlp|  楼主 | 2013-5-10 10:02 | 只看该作者
IJK 发表于 2013-5-10 09:30
下载、安装IAR EWSTM8,里面应该有STM8S105 的ADC例程,应该可以参考。

没有找到的,里面没有,可以给我提供点吗,或者告诉我其他获取资料的方法。

使用特权

评论回复
9
wazhzlp|  楼主 | 2013-5-11 10:12 | 只看该作者
无法解决此问题,求大家帮忙

使用特权

评论回复
10
wazhzlp|  楼主 | 2013-5-14 11:01 | 只看该作者
次问题无法解决。https://my.st.com/public/STe2eco ... mp;currentviews=787

这个帖子有详细原因解释,给大家一点资料。

使用特权

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

本版积分规则

13

主题

51

帖子

1

粉丝