野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17764|回复: 1

关于STM32F429定时器的问题 自动重载值 (Auto-reload value)

[复制链接]
发表于 2019-4-16 22:18:10 | 显示全部楼层 |阅读模式
在配置基本定时器时 使用STM32CubeMX 配置 配置有下图
1.jpg
TIM6 内部时钟为90MHz 分频器配置成 4499 也就是20KHz  50us
自动重载值为0  启用中断  
void MX_TIM6_Init(void)
{
  TIM_MasterConfigTypeDef sMasterConfig = {0};
  htim6.Instance = TIM6;
  htim6.Init.Prescaler = 4499;
  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim6.Init.Period = 0;
  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
  {
    Error_Handler();
  }
  sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
  {
    Error_Handler();
  }
  HAL_TIM_Base_Start_IT(&htim6);

}

/**
  * @brief  Period elapsed callback in non blocking mode
  * @param  htim pointer to a TIM_HandleTypeDef structure that contains
  *                the configuration information for TIM module.
  * @retval None
  */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  /* Prevent unused argument(s) compilation warning */
  LED_R_T();
  /* NOTE : This function Should not be modified, when the callback is needed,
            the __HAL_TIM_PeriodElapsedCallback could be implemented in the user file
   */
}

但我用示波器在LED上看不到任何波型
当把 htim6.Init.Period 值配置为1时  在示波器上能看到高电平宽度为100us 频率为10KHz
也就是说 htim6.Init.Period(自动重载值) 值不能为0 但在STM32CubeMX 上有如下图解释
2.jpg

也就是说这个Period(自动重载值)值是介于 0 到 65535之间呀

但这个值包不包括0呀



可能表达的不是很清楚   不会叙述






回复

使用道具 举报

发表于 2019-4-17 14:04:26 | 显示全部楼层
自动重载值和分频的一样按减一算,比如你配置是1,就是2-1,就是在分频频率后再分2,所以变成10khz,,我试过配置1貌似也不行
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-12-6 10:46 , Processed in 0.038712 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表