单片机型号使用的是STM32F103RCT6,103系列不同型号的单片机只需要查看手册重新配置引脚即可,STM32的两个高级定时器TIM1和TIM8都可以输出互补PWM,但是每个定时器只能输出三路互补PWM,本文使用TIM8同时输出三路互补PWM,代码如下:
timer.h头文件
#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"
void TIM8_Init(u32 arr, u32 psc);
#endif
timer.c文件
#include "timer.h"
/**********88
TIM8 CH1-------------> PC6
TIM8 CH1N-----------> PA7
TIM8 CH2-------------> PC7
TIM8 CH2N-----------> PB0
TIM8 CH3-------------> PC8
TIM8 CH3N-----------> PB1
********/
void TIM8_Init(u32 arr, u32 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
//´®¿Ú³õʼ»¯
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8 | RCC_APB2Periph_GPIOC |
RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
G