0

在过去的两个晚上,我一直在尝试在 STM32H7A3 MPU 上设置定时器触发的 DFSDM 转换,但没有成功。谷歌搜索我没有一个完整的例子,也许是因为 DFSDM 是更高级的主题。
目标:每 1 秒用 N 个样本填充过滤器缓冲区。
我附上了 CubeMX 设置的屏幕截图。转换在连续模式下按预期工作,因此通道和时钟设置正确。
在代码中,在启动 1s 计时器 ( HAL_TIM_Base_Start()) 之前,我调用HAL_DFSDM_FilterInjectedMsbStart_DMA().
既没有DFSDM1_FLT2_IRQHandler()也没有DMA1_Stream2_IRQHandler()被解雇。
我错过了什么?

过滤器设置

DMA 设置

定时器 7 设置

4

1 回答 1

0

这个设置没有任何问题。问题是过滤器缓冲区太大,我没有足够的耐心。
但是,这种方法不能满足我的需求。在每个计时器滴答声中,都会将一个新值添加到缓冲区中,并且HAL_DFSDM_FilterInjConvCpltCallback()仅在过滤器缓冲区已满时才调用。为了获得一系列快速测量(例如 1kHz 速率),我可以提高计时器速度,但这会给 CPU 带来太多不必要的负载,而我并不关心确切的速率,只要它是已知的。我最好使用以(例如)1s 间隔开始的常规转换。

于 2021-04-03T07:30:08.700 回答