当前位置:   article > 正文

STM32F7的DMA方式和测频法(与STM21F103不同)_retriggerable opm1

retriggerable opm1

F7的配置思路和F103类似,高级定时器配置细节不一样。F7的高级定时器配置如图

定时器8的Output Compare Channel 4的模式选择retriggerable OPM模式时才有16个trigger信号正确输出,选择toggle on match模式没有输出,其他模式输出的脉冲个数不是16个。

经验证:当AD芯片是ADS8598时,选择retriggerable OPM1,读取到的AD数据会在正确的通道上,如果选择retriggerable OPM2,AD采集的某个通道的信号会出现在前一个信号通道上。

使用STM32F723的测频法与STM32103有所不同。使用两个定时器,一个TIM3用于产生1S的定时,一个用于计数外来的信号值。TIM3和TIM4不采用主从模式。TIM3配置如图:

TIM4的配置如图:时钟源选择外部触发作为时钟,这样可以对外部信号进行计数。

main.c程序关键代码如下:

  1. HAL_TIM_Base_Start(&htim4);//启动定时器4
  2. HAL_TIM_Base_Start_IT(&htim3);
  3. HAL_TIM_Base_Start_IT(&htim4);

it.c程序关键代码如下:

  1. extern uint16_t GRCounter;
  2. uint16_t Last_GRCounter=0;
  3. uint16_t Tim4_out=0;
  4. uint16_t GR_Number=0;
  5. uint16_t GR_Fre=0;
  6. /* USER CODE END 0 */
  7. /* External variables --------------------------------------------------------*/
  8. extern TIM_HandleTypeDef htim3;
  9. extern TIM_HandleTypeDef htim4;
  10. void TIM3_IRQHandler(void)
  11. {
  12. /* USER CODE BEGIN TIM3_IRQn 0 */
  13. __HAL_TIM_CLEAR_FLAG(&htim3,TIM_FLAG_UPDATE); //清除TIMx的中断待处理
  14. GRCounter=__HAL_TIM_GET_COUNTER(&htim4);//读取定时4对外部脉冲的计数结果
  15. __HAL_TIM_SET_COUNTER(&htim4,0);
  16. /* USER CODE END TIM3_IRQn 0 */
  17. HAL_TIM_IRQHandler(&htim3);
  18. /* USER CODE BEGIN TIM3_IRQn 1 */
  19. /* USER CODE END TIM3_IRQn 1 */
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/1018227
推荐阅读
相关标签
  

闽ICP备14008679号