OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 27517|回复: 12

贴出我的stm8s003的ADC1多通道连续转换的程序,请各位看看那里有问题。不能转换呢

[复制链接]

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-4-8
在线时间
0 小时
发表于 2014-4-15 08:21:09 | 显示全部楼层 |阅读模式
void ADC_Init(void)
{
   ADC1_DeInit();
   ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,(ADC1_CHANNEL_6|ADC1_CHANNEL_5),ADC1_PRESSEL_FCPU_D18,ADC1_EXTTRIG_TIM, DISABLE,ADC1_ALIGN_RIGHT, (ADC1_SCHMITTTRIG_CHANNEL6|ADC1_SCHMITTTRIG_CHANNEL6),DISABLE);
   ADC1_ScanModeCmd(ENABLE);//启用扫描模式
   ADC1_DataBufferCmd(ENABLE);//启用缓存寄存器存储数据
   ADC1_ITConfig(ADC1_IT_EOCIE,DISABLE);//关闭中断功能
      
   ADC1_Cmd(ENABLE);//启用ADC1
   ADC1_StartConversion();//开始转换
}

在main函数里。调用ADC_Init()后,把数据读到16位的data里:data1=GetBufferValue(0x06);
                                                                                    data2=GetBufferValue(0x05);
                                                                                     if(data1>=0xff)    LED_BLUE(ON);//亮灯这个语句之前用过,可以正常执行。
       
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-4-8
在线时间
0 小时
 楼主| 发表于 2014-4-15 08:46:21 | 显示全部楼层
连续转换的时候为什么要用到定时器呢、?
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-4-8
在线时间
0 小时
 楼主| 发表于 2014-4-15 08:59:03 | 显示全部楼层
stm8s003是不是不支持多通道同时转换啊?但他不是有ADC1 的吗?手册上对模式选择的描述是5种:单次模式,连续模式,带缓存的连续模式,单次扫描模式,连续扫描模式。
回复 支持 反对

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164932
金钱
164932
注册时间
2010-12-1
在线时间
2100 小时
发表于 2014-4-15 19:51:07 | 显示全部楼层
回复【2楼】qrffrq:
---------------------------------
adc采集不一定要定时器。
你这里我也没看到定时器的代码。
回复【3楼】qrffrq:
---------------------------------
1个ADC可以有多个通道的。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-4-8
在线时间
0 小时
 楼主| 发表于 2014-4-16 09:06:45 | 显示全部楼层
回复【4楼】正点原子:
--------------------------------
原子哥好!我在手册上没有看到关于多通道同时转换的寄存器,这样的话,是不是只要开始转换,就可以随时用GetBufferValue()来读取每个通道的转换结果呢?
               连续转换的模式下,是不是像我之前贴出来的那样,配置好各个寄存器,ADC1就会不停的工作了呢?
回复 支持 反对

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164932
金钱
164932
注册时间
2010-12-1
在线时间
2100 小时
发表于 2014-4-16 14:45:19 | 显示全部楼层
回复【5楼】qrffrq:
---------------------------------
每个通道都要设置号以后,才可以用的。
是的。不过这个时候,要用DMA接收数据。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-1-16
在线时间
0 小时
发表于 2015-1-26 11:07:24 | 显示全部楼层
在STM32F4的资料中才有ECOS
回复 支持 反对

使用道具 举报

4

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2016-1-25
在线时间
75 小时
发表于 2017-8-8 17:15:39 | 显示全部楼层
我是用STM8S003f3p6,在工程内添加ADC1的库函数,make就提示ADC1相关的内容没定义,ADC2库函数文件就没有问题
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-8-21
在线时间
0 小时
发表于 2017-8-21 08:07:33 | 显示全部楼层
ljmf5 发表于 2017-8-8 17:15
我是用STM8S003f3p6,在工程内添加ADC1的库函数,make就提示ADC1相关的内容没定义,ADC2库函数文件就没有问 ...

今天调试程序时遇到8楼说的同样的问题,工程内添加ADC1库函数就会报错,不知道是哪里问题?
回复 支持 反对

使用道具 举报

16

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2015-12-3
在线时间
54 小时
发表于 2017-8-21 16:54:10 | 显示全部楼层
我用stm8L151三通道时是采用了DMA缓存,推测你这是因为没有缓存下来导致的
回复 支持 反对

使用道具 举报

4

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2016-1-25
在线时间
75 小时
发表于 2017-8-22 11:14:31 | 显示全部楼层
永兴电子 发表于 2017-8-21 08:07
今天调试程序时遇到8楼说的同样的问题,工程内添加ADC1库函数就会报错,不知道是哪里问题?

应该工程问题,我当时也不知道怎么就可以了你试试我这个

infra.rar

6.41 MB, 下载次数: 5438

回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2017-8-21
在线时间
0 小时
发表于 2017-8-29 20:48:27 | 显示全部楼层
ljmf5 发表于 2017-8-22 11:14
应该工程问题,我当时也不知道怎么就可以了你试试我这个

谢谢您的回复,就是建工程的时候 要选择单片机的型号。不同的单片机内部资源是不一样的。
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2017-10-18
在线时间
6 小时
发表于 2017-10-25 09:18:23 | 显示全部楼层
MARK

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-16 18:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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