OpenEdv-开源电子网

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

用DMA从ADC/FSMC/FMC直接搬运得到float型数据,是否可行?

[复制链接]

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2017-2-28
在线时间
12 小时
发表于 2017-4-21 06:51:13 | 显示全部楼层 |阅读模式
1金钱
想用DMA从ADC的数据寄存器直接搬运浮点数,但是不成功,搬运int型完全没有问题,改成float型就不行,如果想得到float型的数组/向量,必须由处理器参与,比如 Value = (float)ADC1->CDR
请问,有没有办法可以直接让DMA从ADC搬运回float型数据?或者不需要处理器参与由int转换成float?
除此之后,这个适用于DMA从FSMC/FMC吗?

最佳答案

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

DMA搬运的就是一个u32类型的数据,你可以把float强制转换为u32,然后再传输。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-4-21 06:51:14 | 显示全部楼层
DMA搬运的就是一个u32类型的数据,你可以把float强制转换为u32,然后再传输。
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2017-4-21 08:16:09 | 显示全部楼层
adc转化出来的就是整数,你就是把它转成浮点数,有什么意义
回复

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2017-2-28
在线时间
12 小时
 楼主| 发表于 2017-4-21 18:45:00 | 显示全部楼层
止天 发表于 2017-4-21 08:16
adc转化出来的就是整数,你就是把它转成浮点数,有什么意义

数值大小没有变 但是数据类型变成了float 可以直接使用DSP指令

就是说一个DSP函数,输入向量必须是float型,但是通过DMA得到的是整数型,不能作为输入

但是现在我也是不知道怎么转 或者是 直接得到浮点型的向量
回复

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2017-2-28
在线时间
12 小时
 楼主| 发表于 2017-4-21 19:16:44 | 显示全部楼层
其实我没有明白 我想得到的是float型的向量 其中不想让处理器参与 希望可以用DMA直接从ADC里搬出float型的数据到向量里
回复

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2017-2-28
在线时间
12 小时
 楼主| 发表于 2017-4-21 19:17:35 | 显示全部楼层
正点原子 发表于 2017-4-21 06:51
DMA搬运的就是一个u32类型的数据,你可以把float强制转换为u32,然后再传输。

其实我没有明白 我想得到的是float型的向量 其中不想让处理器参与 希望可以用DMA直接从ADC里搬出float型的数据到向量里
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 21:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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