(非CubeMx)HAL库使用及FFT时间串口输出
时间:10-02
整理:3721RD
点击:
STM32CubeMX是意法半导体STMCube?的主动原创,可以减轻开发工作,时间和费用。STM32Cube覆盖了STM32系列。STM32Cube包括STM32CubeMX,STM32CubeMX是一款图形化软件设置工具,允许使用图形化向导来生成C初始化代码。它也集成了一个全面的软件平台,支持每一个系列(例如STM32F4系列的STM32CubeF4)。这个平台包括STM32CubeHAL(一个STM32的抽象层集成软件,确保STM32系列最大的移植性。)再加上兼容的一套中间件(RTOS,USB,TCP/IP和图形),所有内嵌软件组件附带了全套例程。
我习惯采用库形式,这样比较容易修改用户代码及底层驱动,在KEIL的pack安装目录下面有HAL库的底层驱动。以及各个ST开发板例子。
HAL库搭建方式和标准库基本上是一样的,搭建完后工程如下:
任何程序使用都要有一个初始化HAL底层,HAL_Init();HAL库有一个和标准库很不同地方就是对systick进行了初始化和使用,每1ms中断一次,uwTick增加1;因此可以通过HAL_GetTick()函数获取当时时刻,以及通过HAL_Delay()延时时间。
对ARM的DSP库中FFT进行测试运算时间(包括求模),然后把内部温度也读取,最后把结果上传到串口。由于FFT计算时
间少于1ms,所以测试1000次FFT计算时间,然后求平均。结果如下图所示:
前面数字表示测试了多少次,每次进行1000次FFT运算。可以看出512点实数FFT和求模总共花费345us。并且长时间
运行,温度很低,可见ARM功耗相当出色。