GPIO_InitStructure GPIO_InitTypeDef; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; TIM_BDTRInitTypeDef TIM1_BDTRInitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1、ENABLE); // RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA、ENABLE); // GPIO周辺クロックをイネーブル // RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO、ENABLE); / / 多重ピン // 多重出力、PWMパルス波形TIM1 CH1の出力する端子 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; // TIM_CH1 = GPIO_Mode_AF_PP GPIO_InitStructure.GPIO_Mode; // 多重化プッシュプル出力 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB、 &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // TIM_CH1 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 多重化プッシュプル出力 GPIO_InitStructure = .GPIO_Speed GPIO_Speed_50MHz; (GPIOAと、GPIO_Init&GPIO_InitStructure); // GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1、ENABLE); TIM_TimeBaseStructure.TIM_Period = ARR; //次の更新イベントがオートリロードレジスタ値80Kのアクティブ期間に供給される TIM_TimeBaseStructure.TIM_Prescaler = PSC; //は除数TIMxプリスケーラ値として使用されるクロックの周波数を設定し、分割 TIM_TimeBaseStructure.TIM_ClockDivision = 0 ; // セットクロック分周:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // TIMアップカウントモード TIM_TimeBaseInit(TIM1、&TIM_TimeBaseStructure); // TIM_TimeBaseInitStruct TIMx初期化パラメータ指定された時間ベースユニット /// ******構成BDTR設定されたデッドタイムを登録**************** / /// * @ 20 = TIM_ClockDivisionタイマークロックTIM_CKD_DIV1 72M、TDTS = 13.89ns @ 21 0 - 1.764usアルゴリズムと //22 1.778us - 2つと3.505usアルゴリズム @ 3と7.000usアルゴリズム- 23 3.556usある @ 4と14usアルゴリズム- 7.1117us 24 // 25は、周波数分割TIM_ClockDivisionを使用して、時間がかかる @ 26 * / IS // TIM1_BDTRInitStruct = TIM_OSSRState_Disable .TIM_OSSRState; // TIM1_BDTRInitStruct.TIM_OSSIState = TIM_OSSIState_Disable; // TIM1_BDTRInitStruct.TIM_LOCKLevel = TIM_LOCKLevel_OFF; // TIM1_BDTRInitStruct.TIM_DeadTime = 205; // デッドタイム72:1US 172:205 3us:5us // TIM_BDTRConfig(TIM1、&TIM1_BDTRInitStruct ); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //タイマーモードが選択されるTIMパルス幅変調モード2を TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; // 比較出力がNイネーブル TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enableと、 TIM_OCInitStructure.TIM_Pulse = 400 ; // 捕捉にロードされる設定パルス値は、コンペアレジスタ TIM_OCInitStructureを。 = TIM_OCNPolarity_Low TIM_OCNPolarity; // 出力極性:TIMコンパレータの極性高出力 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCNPolarity_Low; TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset; TIM_OC3Init(TIM1、TIM_OCInitStructure&); // TIM_OCInitStructが周辺TIMx初期化指定されたパラメータ TIM_CtrlPWMOutputs(TIM1、イネーブル); // MOEメイン出力イネーブル // TIM_SetCompare4(TIM8,700); TIM_OC3PreloadConfig(TIM1、TIM_OCPreload_Enable); // のCH1プリインストールキャリア有効 TIM_ARRPreloadConfig(TIM1、イネーブル); // 登録プリロードでTIMx ARRを有効 TIM_Cmd(TIM1、イネーブル); // TIM1を有効
赤いマークに注意を払います