STM32 将两个u16类型的数合成一个float型
项目背景
最近在做一个项目的时候,需要通过STM32F4和FPGA进行通信,将高速AD采样得到的数据利用STM32进行运算,并发送出去。但是在编写FSMC的过程中,我只会从FPGA读写得到u16类型的数据,但我最后需要运算的数据是float型的,所以我假设负责FPGA的同学能够将数据以u16类型保存在FPGA的寄存器中,那么我读取出来之后,需要将2个U16类型的数据合并,得到一个float型。
代码
函数部分非常简单,但是需要了解union类结构体的特点
这一类结构体定义的变量,存储在相同的物理地址上。
主函数如下
led闪烁来体现程序是正常运行的,然后我们将事先计算好的两个u16类型数据带入,添加一个指针(我这边定义了一个float型数组 ggg[50],所以就用的ggg)。
至于0X43C8和0X38E3这两个数据怎么来的,你只要利用网上的浮点数转换工具就可以运算得到,在这边它代表的是浮点数110.11111,如图