设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3540|回复: 3

关于STM8S的AD转换及清风开发板代码的疑问

[复制链接]

1

主题

3

帖子

22

积分

新手上路

Rank: 1

积分
22
cherishxm 发表于 2016-8-8 14:18:10 | 显示全部楼层 |阅读模式
你好,我对STM8的AD转换有个疑问。

1.   STM8的ADC2转换的触发有定时器1触发和外部中断触发,清风给的代码是这样的, ADC2_Init(ADC2_CONVERSIONMODE_CONTINUOUS , ADC2_CHANNEL_10, ADC2_PRESSEL_FCPU_D18,\
   ADC2_EXTTRIG_TIM, DISABLE, ADC2_ALIGN_RIGHT, ADC2_SCHMITTTRIG_CHANNEL10,DISABLE);   
  问题是:    ADC2的转换一定要开定时器1吗?   如果不开定时器1呢,因为有时定时器1有其他用途?   还有ADC2转换函数是要写在定时器1的中断里呢还是写在ADC2的中断函数里呢?    清风给的代码是定时器1中断函数和ADC2的中断函数里都有ADC转换函数。 如下所示
__interrupt void ADC2_IRQHandler(void)
{
       /* Get converted value */
    Conversion_Value = ADC2_GetConversionValue();
    ADC_Value(Conversion_Value);
    ADC2_ClearITPendingBit();
}

_interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void)
{

      Conversion_Value = ADC2_GetConversionValue();
     Delay(0xffff);
     Delay(0xffff);
     ADC_Value(Conversion_Value);
   TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
}

我试过如果把ADC2的函数删掉,LCD不能显示。      视频教程里对ADC2的讲解不太清晰,麻烦在解答下,谢谢。







回复

使用道具 举报

243

主题

1706

帖子

6151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6151
admin 发表于 2016-8-9 09:15:01 | 显示全部楼层
可以不要定时器,看看我们寄存器版本的文档,讲的很清楚
回复 支持 反对

使用道具 举报

1

主题

3

帖子

22

积分

新手上路

Rank: 1

积分
22
 楼主| cherishxm 发表于 2016-8-9 09:21:20 | 显示全部楼层
对开发板和代码,我有三个问题,麻烦分别解答下。
1.   开发板上的Vref+, Vref-参考电压是多少V?   我用万用表量了下是1.8V, 不是3.3V。 请确认。
2.   在AD应用的代码里,我额外加了个定时器4做其他用途,但是发现这时定时器4不能工作,如果屏蔽掉AD初始化,就能工作了。    还有不屏蔽掉AD初始化,只是把AD转换改为单次转换,定时器4也能工作了,就是不能连续转换,这是什么原因呢?  谢谢
回复 支持 反对

使用道具 举报

243

主题

1706

帖子

6151

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6151
admin 发表于 2016-8-9 19:46:25 | 显示全部楼层
cherishxm 发表于 2016-8-9 09:21
对开发板和代码,我有三个问题,麻烦分别解答下。
1.   开发板上的Vref+, Vref-参考电压是多少V?   我用 ...

问题1:这批专业版板子有个BUG,参考单压没给到3.3V。旗舰版没这个问题,这个下次改。
问题2:连续转换的时候,定时器应该使用中断模式。
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-4-19 06:21 , Processed in 0.123097 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表