你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

设置TIM1输出对称PWM,程序运行时怎样更改频率,占空比和死。

[复制链接]
fjlmnb456 提问时间:2020-12-4 16:00 /
int main(void)
{
  /* USER CODE BEGIN 1 */
                        myFlag. power = 0;
            VTimer0[1]=0;
  /* USER CODE END 1 */


  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC1_Init();
  MX_TIM1_Init();
  MX_USART1_UART_Init();
  MX_TIM14_Init();
  /* USER CODE BEGIN 2 */
        HAL_ADCEx_Calibration_Start(&hadc1);//ADC自校验
        HAL_ADC_Start_DMA(&hadc1,(uint32_t *)ADC_ConvertedData,ADC_SAMPLE);//启动AD转换并使能DMA传输和中断
        HAL_TIM_Base_Start_IT(&htim1);          //初始化定时器中断
  HAL_TIM_Base_Start_IT(&htim14);          //初始化定时器中断
       
        HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);
        HAL_TIMEx_PWMN_Stop(&htim1,TIM_CHANNEL_1);
       
        //__HAL_TIM_CLEAR_FLAG(&htim6,TIM_FLAG_UPDATE);  //这是关断定时器语句
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
                                HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);
                                HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);                               
                                HAL_Delay(500);       
                                ADC_ConvertedData[3];
                               
                                //htim1.Instance->sTimerxRegs[0].PERxR = 50000;//通过修改重装载值PER,从而修改PWM的频率  
                                //htim1.Instance->sTimerxRegs[0].CMP1xR = 11504;//通过修改比较值CMP,从而修改占空比
                               //上面两个语句在STM32G071不能用啊
  }
  /* USER CODE END 3 */
}
希望高手指点

收藏 评论2 发布时间:2020-12-4 16:00

举报

2个回答
小歆-2051663 回答时间:2020-12-4 16:30:09
修改PWM频率:
  1. __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__)
复制代码


修改PWM占空比:
  1. __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__)
复制代码



fjlmnb456 回答时间:2020-12-5 14:12:57
小歆-2051663 发表于 2020-12-4 16:30
修改PWM频率:

修改PWM占空比:

谢谢指教
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版