赞
踩
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程序关键代码如下:
- HAL_TIM_Base_Start(&htim4);//启动定时器4
- HAL_TIM_Base_Start_IT(&htim3);
- HAL_TIM_Base_Start_IT(&htim4);
it.c程序关键代码如下:
- extern uint16_t GRCounter;
- uint16_t Last_GRCounter=0;
- uint16_t Tim4_out=0;
- uint16_t GR_Number=0;
- uint16_t GR_Fre=0;
- /* USER CODE END 0 */
-
- /* External variables --------------------------------------------------------*/
- extern TIM_HandleTypeDef htim3;
- extern TIM_HandleTypeDef htim4;
- void TIM3_IRQHandler(void)
- {
- /* USER CODE BEGIN TIM3_IRQn 0 */
-
- __HAL_TIM_CLEAR_FLAG(&htim3,TIM_FLAG_UPDATE); //清除TIMx的中断待处理
-
- GRCounter=__HAL_TIM_GET_COUNTER(&htim4);//读取定时4对外部脉冲的计数结果
- __HAL_TIM_SET_COUNTER(&htim4,0);
-
- /* USER CODE END TIM3_IRQn 0 */
- HAL_TIM_IRQHandler(&htim3);
- /* USER CODE BEGIN TIM3_IRQn 1 */
-
-
- /* USER CODE END TIM3_IRQn 1 */
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。