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

2019-07-20 15:08发布

想用DMA从ADC的数据寄存器直接搬运浮点数,但是不成功,搬运int型完全没有问题,改成float型就不行,如果想得到float型的数组/向量,必须由处理器参与,比如 Value = (float)ADC1->CDR
请问,有没有办法可以直接让DMA从ADC搬运回float型数据?或者不需要处理器参与由int转换成float?
除此之后,这个适用于DMA从FSMC/FMC吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-20 15:29
 精彩回答 2  元偷偷看……
止天
2楼-- · 2019-07-20 15:37
adc转化出来的就是整数,你就是把它转成浮点数,有什么意义
hh7689
3楼-- · 2019-07-20 16:03
止天 发表于 2017-4-21 08:16
adc转化出来的就是整数,你就是把它转成浮点数,有什么意义

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

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

但是现在我也是不知道怎么转 或者是 直接得到浮点型的向量
hh7689
4楼-- · 2019-07-20 21:09
 精彩回答 2  元偷偷看……
hh7689
5楼-- · 2019-07-20 22:19
正点原子 发表于 2017-4-21 06:51
DMA搬运的就是一个u32类型的数据,你可以把float强制转换为u32,然后再传输。

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

一周热门 更多>