搜索
查看: 4497|回复: 6

[求助] STM32CubeMX获得ADC的采样数值问题

[复制链接]

该用户从未签到

82

主题

718

帖子

121

蝴蝶豆

版主

最后登录
2021-1-2
发表于 2018-12-26 21:09:27 | 显示全部楼层 |阅读模式
首次用STM32CubeMX创建工程,在PWM上遇到许多问题,还好“绕过难点”基本过了。但在ADC上则出现大问题,按照网友在本站的发帖的方法,没有一个成功。
也不知道应该如何从哪个函数得到ADC的采样值。
我选的是ADC1的IN1,IN2,IN3这3个通道,配置项中主要选项见3张图。
因为采用DMA方式,在adc.c和dma.c中到找不到应该从哪了获得采样后的实测数据存储位置和变量名。
求助,先谢谢了。

1

1

2

2

3

3
回复

使用道具 举报

该用户从未签到

74

主题

3420

帖子

82

蝴蝶豆

社区小助手

最后登录
2023-11-12
发表于 2018-12-26 22:01:19 | 显示全部楼层
本帖最后由 wenyangzeng 于 2018-12-26 22:07 编辑

楼主只配置了ADC,没有启动ADC,就好像发动了车,但没有挂挡。
uint32_t ADC_Result[3];int main(void)
{
.
.
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)& ADC_Result, 3);
.
.
.
}





评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

47

主题

3456

帖子

30

蝴蝶豆

版主

最后登录
2022-12-25
发表于 2018-12-27 08:12:42 | 显示全部楼层
接着楼上的内容,你启动HAL_ADC_Start_DM后,
还需要下面这个函数,判断ADC采样完成。。。
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
        :::::
}

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

10

主题

802

帖子

271

蝴蝶豆

版主

最后登录
2020-12-15
发表于 2018-12-27 16:45:09 | 显示全部楼层
你还配置了注入通道?
另外,配置了还要添加合适的用户代码,比方HAL_ADC_START_DMA();

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

82

主题

718

帖子

121

蝴蝶豆

版主

最后登录
2021-1-2
 楼主| 发表于 2018-12-27 20:18:50 | 显示全部楼层
本帖最后由 zhjb1 于 2018-12-27 20:21 编辑
wenyangzeng 发表于 2018-12-26 22:01
楼主只配置了ADC,没有启动ADC,就好像发动了车,但没有挂挡。
uint32_t ADC_Result[3];int main(void)
{

您好!
实际上搜代码搜到可用的ADC启动函数有:
HAL_ADC_Start_IT(&hadc1);
HAL_ADCEx_Calibration_Start(&hadc1);
第一个无报错,但MCU不动了——做了个程序计数器,不变,LED也不闪了。
第二个也不报错,所有PWM正常,LED正常,但ADC不知哪里读出数据。
添加您给的,定义变量:
uint32_t ADC_Result[3];
在循环体中添加
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&ADC_Result,4);
   HAL_Delay(50);
   val1=ADC_Result[0];
   val2=ADC_Result[1];
   val3=ADC_Result[2];
   val4=ADC_Result[3];
结果倒是显示了,但所有结果都只有ADC 的通道in1有效,通道2,3没有显示出来。
这是什么原因?谢谢
实际上还有一个问题:UART5在STM32CubeMX中设置没有问题,但printf没有结果,也运行自己生成的uart.c了,在此谢谢。
回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

3420

帖子

82

蝴蝶豆

社区小助手

最后登录
2023-11-12
发表于 2018-12-27 20:41:55 | 显示全部楼层
本帖最后由 wenyangzeng 于 2018-12-27 20:54 编辑
zhjb1 发表于 2018-12-27 20:18
您好!
实际上搜代码搜到可用的ADC启动函数有:
HAL_ADC_Start_IT(&hadc1);

楼主貌似没有正确分配ADC的通道参数了,(还有那个injected模式并不适合混合使用)

无标题.png
回复 支持 反对

使用道具 举报

该用户从未签到

82

主题

718

帖子

121

蝴蝶豆

版主

最后登录
2021-1-2
 楼主| 发表于 2018-12-27 21:13:22 | 显示全部楼层
这个我都设了,与您这图稍不一样:
1~4rank都一样,都是图上的一个数值。
谢谢
24_1-ADC1Parament Setting设置.jpg
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-29 18:20 , Processed in 1.229435 second(s), 49 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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