STM32F103C8T6 PWM(PB15)HAL

APB2时钟为72M

prescaler为分频系数,72M/(71+1)=1MHz

Count Period为计数,PWM频率为1MHz/(999+1)=1KHz

 

PB15为互补输出

Pulse设置的是占空比:(pulse+1)/(Count Period+1)=D     即(499+1)/(999+1)=50%

 主函数加入

  /* USER CODE BEGIN 2 */
  MX_TIM1_Init();
  HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_3);  //互补通道输出开启
  /* USER CODE END 2 */

 生成的代码中将tim.c中的模式成pwm,因为cubemx不支持修改

 加入以下代码,则PB15接LED可为呼吸灯

	pwm_data=999;
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
			pwm_data--;
			HAL_Delay(1);
			if(pwm_data==1)
				pwm_data=999;
			__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_3,pwm_data);
    /* USER CODE BEGIN 3 */
  }
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用STM32Cube库来配置和控制STM32F103C8T6的PWM输出。下面是一个简单的示例代码,用于配置PB13引脚为PWM输出。 首先,在您的工程中引入必要的头文件和库文件: ```c #include "stm32f1xx_hal.h" #include "stm32f1xx_hal_tim.h" ``` 然后,编写以下代码来配置和控制PWM输出: ```c // 定义定时器句柄和PWM配置结构体 TIM_HandleTypeDef htim; TIM_OC_InitTypeDef sConfig; void PWM_Init(void) { // 初始化定时器时钟 __HAL_RCC_TIM2_CLK_ENABLE(); // 配置定时器基本参数 htim.Instance = TIM2; htim.Init.Prescaler = 0; htim.Init.CounterMode = TIM_COUNTERMODE_UP; htim.Init.Period = 999; // PWM周期,根据需求进行调整 htim.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_PWM_Init(&htim); // 配置PWM通道 sConfig.OCMode = TIM_OCMODE_PWM1; sConfig.Pulse = 500; // PWM占空比,根据需求进行调整 sConfig.OCPolarity = TIM_OCPOLARITY_HIGH; sConfig.OCFastMode = TIM_OCFAST_ENABLE; HAL_TIM_PWM_ConfigChannel(&htim, &sConfig, TIM_CHANNEL_1); // 启动PWM输出 HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_1); } int main(void) { // 初始化HALHAL_Init(); // 初始化定时器PWM输出 PWM_Init(); while (1) { // 其他代码 } } ``` 上述代码将配置PB13引脚为PWM输出,并且通过改变`sConfig.Pulse`的值来调整PWM的占空比。您可以根据需要修改代码中的参数来满足您的具体要求。请确保正确配置定时器和引脚,以及适当的时钟使能。 请注意,以上代码仅供参考,您可能需要根据您的具体硬件和需求进行适当的调整。更多关于STM32F1系列的PWM输出的详细信息,请参考相关的芯片参考手册和STM32Cube库的文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值