STM32CubeMX学习笔记——STM32H743输入捕获

STM32CubeMX学习笔记——STM32H743输入捕获

  • Github
  • 功能简述
  • STM32CubeMX配置
    • Pinout配置
    • Clock Configuration配置
    • Configuration
      • GPIO
      • TIM5
      • NVIC
  • 代码部分
    • main.c
    • stm32h7xx_it.c

Github

https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/STM32H7/Class04_InputCapture

功能简述

在PA0上进行输入捕获,将输入信号的频率与高/低电平时间分别存储在pre、time变量中

STM32CubeMX配置

STM32CubeMX版本:4.27.0
配置流程:
Pinout界面选择并开启TIM5 RCC
Clock Configuration配置时钟树
Configuration界面配置System
生成工程

Pinout配置

STM32CubeMX学习笔记——STM32H743输入捕获_第1张图片
开启TIM5定时器并设置为输入捕获模式

Clock Configuration配置

在这里插入图片描述
开启系统时钟,TIM5时钟(APB1)

Configuration

STM32CubeMX学习笔记——STM32H743输入捕获_第2张图片
左侧主要系统功能的开启,或中间软件层功能的开启(如:RTOS、JPEG解码器,文件系统等)
右侧是系统及外设模块的具体配置

GPIO

STM32CubeMX学习笔记——STM32H743输入捕获_第3张图片

TIM5

STM32CubeMX学习笔记——STM32H743输入捕获_第4张图片
周期=((1+TIM_Prescaler )/时钟)*(1+TIM_Period )
分频:0
计数模式:向上计数
重装值:0xffffffff
时钟分割:0 (数字滤波器相关)
自动重装:关闭
MSM:关闭(开启将在该定时器使能的同时TRGO发出信号)

Polarity Selection:捕获方式,当前选择上升沿、下降沿都会触发
IC Selection:映射中断线
Prescaler Division Ratio:输入分频
Input Filter:滤波器

NVIC

STM32CubeMX学习笔记——STM32H743输入捕获_第5张图片
STM32CubeMX学习笔记——STM32H743输入捕获_第6张图片
STM32CubeMX学习笔记——STM32H743输入捕获_第7张图片

代码部分

main.c

/* USER CODE BEGIN 2 */
	HAL_TIM_IC_Start_IT(&htim5,TIM_CHANNEL_1);
  /* USER CODE END 2 */

stm32h7xx_it.c

/* USER CODE BEGIN 0 */
uint32_t last = 0;
double fre = 0;
double time = 0;
/* USER CODE END 0 */

/* USER CODE BEGIN 1 */
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{
	uint32_t i = HAL_TIM_ReadCapturedValue(htim,TIM_CHANNEL_1);
	
	if(last < i){
		time = (i - last) / 200000000.0;
		fre =  200000000.0 / ((i - last) * 2);
	}
	else {
		time = ((0xffffffff - last) + i) / 200000000.0;
		fre =  200000000.0 / (((0xffffffff - last) + i) * 2);
	}
	last = i;
}
/* USER CODE END 1 */

你可能感兴趣的:(STM32CubeMX学习笔记——STM32H743输入捕获)