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

STM32 PWM互补输出设置

[复制链接]
攻城狮Melo 发布时间:2022-11-4 17:09
本例程是使用STM32CubeMX 6.5版本生成带代码
测试单片机型号:STM32F103VET6

时钟设置72MHZ

a1444d7daf9043a6a958f03940eec688.png

使用定时器1的通道1 和 通道2 配置PWM互补输出

a6d0b97a4fab439c9e9374d0d3b1ae32.png

分频72分频(定时器频率为 72MHZ / 72 = 1MHZ),计数周期1000,也就是计数到1000溢出,所以,PWM频率就是1KHZ,周期是1ms (1s / 1000)

47305bf43f08497a8ce780f6d0a93644.png

PWM占空比设置

c6f43adca7254a41bc894eda325ff6f7.png

注意: 红框是占空比设置,也就是比较器寄存器和计数器寄存器的数值所比较,相同后翻转引脚(大致就是这个意思)其它不要动
最后生成代码,生成的代码在 main 函数中添加一下几个函数,即可成功运行

  1. int main(void)
  2. {
  3.   /* USER CODE BEGIN 1 */

  4.   /* USER CODE END 1 */

  5.   /* MCU Configuration--------------------------------------------------------*/

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

  8.   /* USER CODE BEGIN Init */

  9.   /* USER CODE END Init */

  10.   /* Configure the system clock */
  11.   SystemClock_Config();

  12.   /* USER CODE BEGIN SysInit */

  13.   /* USER CODE END SysInit */

  14.   /* Initialize all configured peripherals */
  15.   MX_GPIO_Init();
  16.   MX_USART1_UART_Init();
  17.   MX_TIM1_Init();
  18.   MX_ADC1_Init();
  19.   /* USER CODE BEGIN 2 */

  20.   HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);                                                //启动 PWM 通道1信号输出               
  21.   HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);                                                //启动 PWM 通道2信号输出               


  22.   HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);                                //启动 PWM 通道1 互补信号输出
  23.   HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);                                //启动 PWM 通道2 互补信号输出
  24.         
  25.   __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,200);                //设置 PWM 通道1 占空比
  26.   __HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_2,800);                //设置 PWM 通道2 占空比
  27.         
  28.         

  29.         printf("start up\n");
  30.   /* USER CODE END 2 */

  31.   /* Infinite loop */
  32.   /* USER CODE BEGIN WHILE */
  33.   while (1)
  34.   {
  35.     /* USER CODE END WHILE */

  36.     /* USER CODE BEGIN 3 */
  37.   }
  38.   /* USER CODE END 3 */
  39. }
复制代码

实际照片

fa0b5f72dd624544a60976a6bd05add5.png

————————————————
版权声明:小石头有大内涵


收藏 评论0 发布时间:2022-11-4 17:09

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版