OpenEdv-开源电子网

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

关于stm32软件触发ADC转换中的ADC_SoftwareStartConvCmd()函数问题

[复制链接]

21

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2015-7-12
在线时间
51 小时
发表于 2016-7-16 18:18:57 | 显示全部楼层 |阅读模式
1金钱
我今天是配置stm32f1的adc为软件触发方式。必须要使用ADC_SoftwareStartConvCmd()这个函数,但是我想问一下这个函数可以用来停止ADC转换吗ADC_SoftwareStartConvCmd(ADC1,DISABLE);
我在主函数循环里检测按键,当按键按下后就使用这个函数,但是结果发现ADC转换并没有停止,所以我想问这个函数可以控制ADC转换吗???还是说只能触发ADC,不能控制ADC的停止?

最佳答案

查看完整内容[请看2#楼]

貌似没有,不过我知道原因了,就是因为我使用的是连续转换模式,如果我设置成单次模式的话就可以用那个函数来控制了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2015-7-12
在线时间
51 小时
 楼主| 发表于 2016-7-16 18:18:58 | 显示全部楼层
憨厚诚实大叔 发表于 2016-7-16 19:19
051有一个
ADSTP: ADC 停止转换命令
该位由软件设置来停止和丢弃正在进行中的转换。

貌似没有,不过我知道原因了,就是因为我使用的是连续转换模式,如果我设置成单次模式的话就可以用那个函数来控制了
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-7-16 18:27:04 | 显示全部楼层
应该不能停止吧。话说,你是DMA模式嘛,印象中不是的话,你是用这个函数一次,他就转换一次,转换完就等待下一次软件触发了
回复

使用道具 举报

21

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2015-7-12
在线时间
51 小时
 楼主| 发表于 2016-7-16 18:29:11 | 显示全部楼层
这是我的程序

ADC软件触发 DMA方式.zip

5.18 MB, 下载次数: 185

回复

使用道具 举报

21

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2015-7-12
在线时间
51 小时
 楼主| 发表于 2016-7-16 18:30:18 | 显示全部楼层
憨厚诚实大叔 发表于 2016-7-16 18:27
应该不能停止吧。话说,你是DMA模式嘛,印象中不是的话,你是用这个函数一次,他就转换一次,转换完就等待 ...

是DMA模式,直接把数据传到串口再打印出来
回复

使用道具 举报

21

主题

79

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2015-7-12
在线时间
51 小时
 楼主| 发表于 2016-7-16 18:33:09 | 显示全部楼层
憨厚诚实大叔 发表于 2016-7-16 18:27
应该不能停止吧。话说,你是DMA模式嘛,印象中不是的话,你是用这个函数一次,他就转换一次,转换完就等待 ...

对了,我配置ADC是循环转换,不是单次,这样的话ADC_SoftwareStartConvCmd()enable以后就开始不停的转换了,当我ADC_SoftwareStartConvCmd()DISABLE以后他还是在转换,串口一直在打印数据
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-7-16 19:19:20 | 显示全部楼层
051有一个
ADSTP: ADC 停止转换命令
该位由软件设置来停止和丢弃正在进行中的转换。
当转换停止结束时, 该位由硬件清零且 ADC 已准备好接受新的转换命令。
0: 不发 ADC 停止转换命令
1: 写1用来停止 ADC, 读为1时表明 ADSTP 命令正在执行中。

你看看你芯片有没有这一位,看看写1有效果不
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 07:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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