各功能模块的配置以及使用
stm32固件库是各功能模块的配置以及使用。类似于api,接触少数底层就可以写出程序。提高开发效率及降低门槛。而外设库只是固件库的一部分。
另外外设库、CMSIS、DSP库、三方驱动等组合起来就成固件库。固件为硬件服务,与驱动一同完成软硬件的交互。固件提供了一种规范,可以兼容不同的 *** 作系统。
扩展资料:
HAL固件库编程,文件组织大致分三个部分:HAL驱动、CMSIS驱动和用户编写程序。如使用的是ST官网的开发板,还有一套现成的驱动可供使用,板级支持包(BSP)。
HAL驱动是ST提供的一些包装好的硬件抽象层的驱动,CMSIS是ARM内核相关的一些驱动,这个一般编程都 *** 纵不到,大部分都是调用HAL的程序。
除此之外system文件也是包含在CMSIS下的,只要到对应的文件夹下拷贝出来就好了,因此在 *** 作中要注意区分,如果要更改文件,建议提前备份。
想一个灯光控制的项目。采集音频AD做个FFT,然后控制灯的闪烁。我对FLASH,RAM都要求不高,就想能有FFT的定点运算支持就好了,F10x的有DSP支持库,虽然是定点的,但是也够用了。如果没有库的支持,FFT做的太慢就玩不了。可以,函数 arm_cfft_radix4_init_f32,用于初始化 FFT 运算相关参数,其中: fftLen 用于指定 FFT 长度(16/64/256/1024/4096)4个参数按顺序是 输出(长度N,type s32)、输入(至少长度M+N-1,type u8)、系数表(M个系数)、输出数据个数N,我的疑惑是有了多采集的M个数据,是不是就不用保存任何过程数据用于后续的FIR处理(即有限冲击响应的体现?),是否可以补M个0替代呢?(实时处理时没有更多的真实数据)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)