stm32專題二十六 互補輸出 死區剎車

2021-09-27 03:09:36 字數 2291 閱讀 6602

互補輸出+死區剎車

這一部分**,主要是初始化3個結構體,包括時基結構體、輸出比較結構體和死區配置結構體,要對照前一篇部落格和中文參考手冊中的暫存器說明來仔細看,**如下:

bsp_advancetim.c

#include "bsp_advancetim.h"

static void advance_tim_gpio_config(void)

static void advance_tim_mode_config(void)

void advance_tim_init(void)

bsp_advancetim.h

#ifndef __bsp_advancetim_h

#define __bsp_advancetim_h

#include "stm32f10x.h"

/************高階定時器tim引數定義,只限tim1和tim8************/

// 當使用不同的定時器的時候,對應的gpio是不一樣的,這點要注意

// 這裡我們使用高階控制定時器tim1

#define advance_tim tim1

#define advance_tim_apbxclock_fun rcc_apb2periphclockcmd

#define advance_tim_clk rcc_apb2periph_tim1

// pwm 訊號的頻率 f = tim_clk/

#define advance_tim_period (8-1)

#define advance_tim_psc (9-1)

#define advance_tim_pulse 4

#define advance_tim_irq tim1_up_irqn

#define advance_tim_irqhandler tim1_up_irqhandler

// tim1 輸出比較通道

#define advance_tim_ch1_gpio_clk rcc_apb2periph_gpioa

#define advance_tim_ch1_port gpioa

#define advance_tim_ch1_pin gpio_pin_8

// tim1 輸出比較通道的互補通道

#define advance_tim_ch1n_gpio_clk rcc_apb2periph_gpiob

#define advance_tim_ch1n_port gpiob

#define advance_tim_ch1n_pin gpio_pin_13

// tim1 輸出比較通道的剎車通道

#define advance_tim_bkin_gpio_clk rcc_apb2periph_gpiob

#define advance_tim_bkin_port gpiob

#define advance_tim_bkin_pin gpio_pin_12

/**************************函式宣告********************************/

void advance_tim_init(void);

#endif /* __bsp_advancetim_h */

然後在主函式中進行測試(需要雙通道示波器來觀察輸出互補波形,以及死區時間152ns):

main.c

#include "stm32f10x.h"

#include "bsp_led.h"

#include "bsp_usart.h"

#include "bsp_advancetim.h"

#include void delay(uint32_t count);

int main(void)

stm32專題二十六 輸入捕獲 脈寬測量

硬體設計 脈寬測量原理 當按鍵沒有按下時,由硬體電路自動拉低。如果按鍵按下,則pa0產生上公升沿,我們進行脈寬測量時,首先設定為上公升沿捕獲,然後在第一次捕獲到上公升沿時,將計數器清零,並設定捕獲極性為下降沿捕獲。當第二次捕獲到訊號時,就是乙個完整的高電平時間。值得注意的是,如果定時器溢位頻率為72...

求助 STM32互補輸出 死區插入

互補輸出 死區 除錯存在問題 使用的是tim1 ch1 ch1n 目前的問題就是波形的前後死區時間不一樣,根據示波器的測量得知,前面的死區是後面的兩倍。根據官方手冊可知 配置如下 tim1 oc.instance tim tim1 oc.init.clockdivision tim clockdiv...

STM32互補PWM輸出使能控制

1 分享如何使用stm32的定時器互補pwm通道,驅動ipm模組產生三相相差120 的正弦波,可產生旋轉磁場驅動三相電機 2 stm32中tim1 ch1和tim1 ch1n的區別 3 stm32 stm32之timer1產生pwm 互補通道 stm32的高階定時器tim1可以產生互補的pwm,並且...