欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
bsp_pwm_output
[打印本頁(yè)]
作者:
小譚1111
時(shí)間:
2019-7-19 14:30
標(biāo)題:
bsp_pwm_output
#include "bsp_pwm_output.h"
/**
* @brief 配置TIM3復(fù)用輸出PWM時(shí)用到的I/O
* @param 無
* @retval 無
*/
static void TIMx_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE); //PB4
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// /*GPIOB Configuration: TIM3 channel 2 as alternate function push-pull */
// GPIO_InitStructure.GPIO_Pin = macTIM_CH2_PIN;
// GPIO_Init(macTIM_CH2_PORT, &GPIO_InitStructure);
}
/**
* @brief 配置TIM3輸出的PWM信號(hào)的模式,如周期、極性、占空比
* @param 無
* @retval 無
*/
/*
* TIMxCLK/CK_PSC --> TIMxCNT --> TIMx_ARR --> TIMxCNT 重新計(jì)數(shù)
* TIMx_CCR(電平發(fā)生變化)
* 信號(hào)周期=(TIMx_ARR +1 ) * 時(shí)鐘周期
* 占空比=TIMx_CCR/(TIMx_ARR +1)
*/
static void TIMx_Mode_Config(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
/* PWM信號(hào)電平跳變值 */
u16 CCR1_Val = 500;
u16 CCR2_Val = 0;
// u16 CCR3_Val = 250;
// u16 CCR4_Val = 125;
/* -----------------------------------------------------------------------
macTIMx Channel1 duty cycle = (macTIMx_CCR1/ macTIMx_ARR+1)* 100% = 50%
macTIMx Channel2 duty cycle = (macTIMx_CCR2/ macTIMx_ARR+1)* 100% = 37.5%
macTIMx Channel3 duty cycle = (macTIMx_CCR3/ macTIMx_ARR+1)* 100% = 25%
macTIMx Channel4 duty cycle = (macTIMx_CCR4/ macTIMx_ARR+1)* 100% = 12.5%
----------------------------------------------------------------------- */
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = 999; //當(dāng)定時(shí)器從0計(jì)數(shù)到999,即為1000次,為一個(gè)定時(shí)周期
TIM_TimeBaseStructure.TIM_Prescaler = 0; //設(shè)置預(yù)分頻:不預(yù)分頻,即為72MHz
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ; //設(shè)置時(shí)鐘分頻系數(shù):不分頻(這里用不到)
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上計(jì)數(shù)模式
TIM_TimeBaseInit(macTIMx, &TIM_TimeBaseStructure);
/* PWM1 Mode configuration: Channel1 */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //配置為PWM模式1
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = CCR1_Val; //設(shè)置跳變值,當(dāng)計(jì)數(shù)器計(jì)數(shù)到這個(gè)值時(shí),電平發(fā)生跳變
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //當(dāng)定時(shí)器計(jì)數(shù)值小于CCR1_Val時(shí)為高電平
TIM_OC1Init(macTIMx, &TIM_OCInitStructure); //使能通道1
TIM_OC1PreloadConfig(macTIMx, TIM_OCPreload_Enable);
// /* PWM1 Mode configuration: Channel2 */
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_Pulse = CCR2_Val; //設(shè)置通道2的電平跳變值,輸出另外一個(gè)占空比的PWM
TIM_OC2Init(macTIMx, &TIM_OCInitStructure); //使能通道2
TIM_OC2PreloadConfig(macTIMx, TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(macTIMx, ENABLE); // 使能TIM3重載寄存器ARR
/* TIM3 enable counter */
TIM_Cmd(macTIMx, ENABLE); //使能定時(shí)器3
}
/**
* @brief TIM3 輸出PWM信號(hào)初始化,只要調(diào)用這個(gè)函數(shù)
* TIM3的四個(gè)通道就會(huì)有PWM信號(hào)輸出
* @param 無
* @retval 無
*/
void TIMx_PWM_Init(void)
{
TIMx_GPIO_Config();
TIMx_Mode_Config();
}
/*********************************************END OF FILE**********************/
復(fù)制代碼
PwmOutput.zip
2019-7-19 14:29 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
2.27 KB, 下載次數(shù): 3, 下載積分: 黑幣 -5
作者:
admin
時(shí)間:
2019-7-20 03:14
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1