打印
[STM32F1]

ADC采样的问题

[复制链接]
2245|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gongche|  楼主 | 2021-9-7 23:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用stm32f103zet6芯片,ADC1通道1采集电压值,当通道1接0V时,结果是0V;当通道1接3.3V时,结果很接近3.3V;但是当什么都不连接时候,为什么是一个浮动的1.几V的电压值?

使用特权

评论回复
沙发
zhanghqi| | 2021-9-7 23:45 | 只看该作者

#include<stdio.h>
#define uchar unsigned char


void Loopfortest(uchar *pt)
{
uchar i,;
// uchar b; //如果不定义b,直接进行下面的操作
//那么i的值是不会等于*pt的。只有加上了 uchar b,并且将i进行
//一次操作,就是赋值给另外一个变量。那么i=*pt就会生效。这是为什么呢?
i=*pt;
// b=++i;

for(i=0;i<10;i++);


}

void main()
{
uchar a=0x44;
Loopfortest(&a);

}

我经过调试发现:
当你定义一个变量,并且这个变量是用来循环计数的,那么这个变量就会存储在寄存器R0-R7中间。
当没有定义uchar b的时候
i=*pt在汇编的代码是:
mov  R0,@R7
这个指令keil是不支持的。
所以i的值是不会发生变回的。
那么定义了一个uchar b.并且将i的值付给b后,为什么i=*pt就生效了呢?
这是因为编译器检测到i作为了一次有效的右值,并且是有效的。那么它就会多几条指令出来,即先将*pt的值(在累加器A中)付给i(也是R0),这个时候代码就是mov R0,A,而不是上面的mov  R0,@R7。然后再将MOV b(的地址),R0

使用特权

评论回复
板凳
zwll| | 2021-9-7 23:48 | 只看该作者
电路特性就是这样的

使用特权

评论回复
地板
renyaq| | 2021-9-7 23:50 | 只看该作者
相当于一个悬浮电压,大概为3.3V的一半

使用特权

评论回复
5
supernan| | 2021-9-7 23:53 | 只看该作者
为什么会有这种情况呢?

使用特权

评论回复
6
dingy| | 2021-9-7 23:57 | 只看该作者

这应该是芯片内部的原因吧
你要测AD最好不要让该引脚悬空,接个可调电位器也行

使用特权

评论回复
7
sonicll| | 2021-9-8 09:01 | 只看该作者
ADC输入通道悬空什么都不接,这本身就是没有意义的,没必要纠结这个问题

使用特权

评论回复
8
chuxh| | 2021-9-8 22:15 | 只看该作者
会不会是你程序算法的问题

使用特权

评论回复
9
xxrs| | 2021-9-8 22:18 | 只看该作者
应是接地噪声的问题,检查硬件设计是否没有滤波

使用特权

评论回复
10
dingy| | 2021-9-8 22:22 | 只看该作者
把引脚设成了下拉输入

使用特权

评论回复
11
chenho| | 2021-9-8 22:24 | 只看该作者
很正常 看你管脚的模式 浮空输入韩香就是这样

使用特权

评论回复
12
lizye| | 2021-9-8 22:26 | 只看该作者
你期望是什么值?

使用特权

评论回复
13
liliang9554| | 2021-9-8 22:28 | 只看该作者
你不给一个确定的输入,采集到的电压就没有意义

使用特权

评论回复
14
jiajs| | 2021-9-8 22:30 | 只看该作者
设计上应该避免

使用特权

评论回复
15
wyjie| | 2021-9-8 22:32 | 只看该作者
如果非要搞清楚悬空时是多少电压可能会非常困难

使用特权

评论回复
16
stly| | 2021-9-8 22:34 | 只看该作者
因为需要了解CPU内部设计细节,而这些设计细节一般人是接触不到的

使用特权

评论回复
17
llljh| | 2021-9-8 22:37 | 只看该作者
另外和你外部的布线也可能相关

使用特权

评论回复
18
gongche|  楼主 | 2021-9-8 22:40 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
19
nawu| | 2021-10-5 11:27 | 只看该作者
悬空什么都不接的值是没有什么意义的

使用特权

评论回复
20
qcliu| | 2021-10-5 11:28 | 只看该作者
首先不要采集悬空的数据

使用特权

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

本版积分规则

768

主题

9410

帖子

2

粉丝