野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11274|回复: 4

求救。。ADC软件转换语句不起作用??

[复制链接]
发表于 2017-3-30 15:12:19 | 显示全部楼层 |阅读模式
该实验想测试STM32f103vet6   mini 开发板的调压模块(就是那个3.3V用跳帽连接PC1),并将ADC转换好的值用串口USART1传到电脑上,用串口调试助手看结果。
出现的问题是,ADC无法进行转换。
目前知道的几个信息有: 1.串口通信可行
                                  2.可以从ADC的数据寄存器中读到值(我用这个语句读取的,ADC_GetConversionValue(ADC1),)
                                  3.硬件上那个连着PC1的可调电压引脚没问题(用万用表测过)
总结:也就是说,电压的输入和数值上传到电脑上这两个步骤应该没问题,最可能就是ADC转换出问题了。
以下附上几张图,希望大神们看看,我实在毫无头绪了~~。。

整个main.c的情况

整个main.c的情况

ADC配置(GPIOC)

ADC配置(GPIOC)

ADC配置

ADC配置

串口配置

串口配置

ADC转换函数

ADC转换函数

printf及main函数

printf及main函数

串口调试助手收到的信息

串口调试助手收到的信息

开发板连接情况

开发板连接情况
回复

使用道具 举报

发表于 2017-3-30 15:17:55 | 显示全部楼层
例程不是直接用PC1的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-30 15:28:05 | 显示全部楼层
flyleaf 发表于 2017-3-30 15:17
例程不是直接用PC1的吗?

是呀,例程是用PC1作为ADC1通道11的输入哈,我也是呀。只是例程中用的DMA方式传输数据,再把数值附在变量上。我是想直接从ADC的数据寄存器中获取数据,用语句ADC_GetConversionValue(ADC1)可以实现。问题好像是出在ADC软件转换上,始终无法转换,程序卡在判断“转换是否完成的那条while语句上
回复 支持 反对

使用道具 举报

发表于 2017-3-30 15:39:53 | 显示全部楼层
liuqixs 发表于 2017-3-30 15:28
是呀,例程是用PC1作为ADC1通道11的输入哈,我也是呀。只是例程中用的DMA方式传输数据,再把数值附在变量 ...

检查下有没有使能触发ADC 转换
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-30 15:56:53 | 显示全部楼层
flyleaf 发表于 2017-3-30 15:39
检查下有没有使能触发ADC 转换

使能触发ADC转换是指的这条语句嘛?ADC_Cmd(ADC1,ENABLE)
我配置的ADC1不是连续转换的,但在”获取ADC转换值的函数“内有ADC_SoftwareStartConvCmd(ADC1,ENABLE),然后再是while(GetFlagStatus(ADC1,ADC_FLAG_EOC)==RESET);这条语句,程序卡这个死循环里了,所以我估计是转换出问题了,但始终从程序里检查不出来
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-15 21:52 , Processed in 0.029820 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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