最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

江科大學(xué)習(xí)筆記 _6.PWM輸出

2023-06-12 09:51 作者:自閉選手的Z23  | 我要投稿



PWM頻率 = 計數(shù)器的更新頻率 72M/CRR+1/ARR+1 72M/(720-1)+1/(100-1)+1 = 1000HZ

占空比 = CRR/ARR+1;

分辨率:1/ARR +1

例:時鐘72M,ARR:100-1, PSC:720-1, CRR: 50

是一個輸出 1khz,50%占空比,分辨率為1%的PWM波的參數(shù)

?

1.?RCC時鐘,定時器和GPIO外設(shè)打開

2.?配置時基單元,時鐘源選擇

3.?配置輸出比較單元

4.?配置GPIO,復(fù)用推挽輸出

5.?運(yùn)行控制

?

?

void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);

用結(jié)構(gòu)體控制輸出比較單元

1.RCC時鐘,定時器和GPIO外設(shè)打開

?RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

?

2.配置時基單元,時鐘源選擇

TIM_InternalClockConfig(TIM2);//內(nèi)部時鐘

????TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;

????TIM_TimeBaseInitStruct.TIM_ClockDivision = TIM_CKD_DIV1;

????TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up;

????TIM_TimeBaseInitStruct.TIM_Period = 100 - 1;//ARR

????TIM_TimeBaseInitStruct.TIM_Prescaler = 720 - 1;//PSC 72M/720/100 = 1000

????TIM_TimeBaseInitStruct.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM2,&TIM_TimeBaseInitStruct);

3.配置輸出比較單元

不同的輸出通道對應(yīng)不同的GPIO口

?TIM_OCInitTypeDef ?TIM_OCInitStruct;

????TIM_OCStructInit(&TIM_OCInitStruct);//結(jié)構(gòu)體賦初值,防止有參數(shù)沒定義到

????TIM_OCInitStruct.TIM_OCMode = TIM_OCMode_PWM1;

????TIM_OCInitStruct.TIM_OCPolarity = TIM_OCPolarity_High;

????TIM_OCInitStruct.TIM_OutputState = TIM_OutputState_Enable;

????TIM_OCInitStruct.TIM_Pulse = 0;//CCR的值

TIM_OC1Init(TIM2, &TIM_OCInitStruct);

?

4.配置GPIO,復(fù)用推挽輸出

????RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

???

????#if 0 //如果需要使用引腳重定義 PWM波輸出PA0 -> PA15

????RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

????GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2,ENABLE);

????GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

????#endif

????GPIO_InitTypeDef GPIO_InitStruct;

????GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;//復(fù)用推挽,將控制權(quán)轉(zhuǎn)移給片上外設(shè)

????GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;//如果重映射,GPIO_Pin_15

????GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;

????GPIO_Init(GPIOA,&GPIO_InitStruct);

5.運(yùn)行控制

?TIM_Cmd(TIM2, ENABLE);

?

?

更改CRR寄存器函數(shù)

?TIM_SetCompare1(TIM2, Compare);

?

?

void PWM_SetCompare1(uint16_t Compare)

{

????TIM_SetCompare1(TIM2, Compare);

}

?

呼吸燈效果

?for (i = 0; i <= 100; i++)

{

????PWM_SetCompare1(i);

????Delay_ms(10);

}

for (i = 0; i <= 100; i++)

{

????PWM_SetCompare1(100 - i);

????Delay_ms(10);

}

?


江科大學(xué)習(xí)筆記 _6.PWM輸出的評論 (共 條)

分享到微博請遵守國家法律
金川县| 惠水县| 石狮市| 崇文区| 新泰市| 舞钢市| 潢川县| 开封市| 渝中区| 武清区| 闽清县| 天祝| 东至县| 渭源县| 吴桥县| 游戏| 屏东县| 阿瓦提县| 高淳县| 临夏县| 扎赉特旗| 巴马| 吉木萨尔县| 南宫市| 枣强县| 临沂市| 临城县| 谢通门县| 娄底市| 镇安县| 凤凰县| 南陵县| 阳高县| 常宁市| 菏泽市| 永德县| 阳朔县| 天长市| 屯昌县| 昭通市| 博乐市|