项目配置
1配置定时器(记得使能中断)
2 TRIG脚位配置
编写代码
1定时器捕获中断(tim.c)
/* USER CODE BEGIN 1 */
//[7]:0,没有成功的捕获;1,成功捕获到一次
//[6]:0,还没捕获到低电平;1,已经捕获到低电平.
//[5:0]:捕获低电平后溢出的次数
uint8_t TIM2CH2_CAPTURE_STA; // 输入捕获状
uint16_t TIM2CH2_CAPTURE_VAL; //输入捕获
//溢出回调函数和捕获回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
if ((TIM2CH2_CAPTURE_STA & 0x80) == 0) // 还未捕获成功
{
if (TIM2CH2_CAPTURE_STA & 0x40) // 捕获到一个下降沿
{
if ((TIM2CH2_CAPTURE_STA & 0x3F) == 0x3F) // 高电平的时间太长
{
TIM2CH2_CAPTURE_STA |= 0X80; // 标记为成功捕获一次
TIM2CH2_CAPTURE_VAL = 0XFFFF;