久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32高級定時器輸出PWM的簡單使用
[打印本頁]
作者:
51hei社區
時間:
2016-1-16 05:06
標題:
STM32高級定時器輸出PWM的簡單使用
先配置好IO
注:TIM1的定時器通道時間1到4分別為PA8 PB9 PB10 PB11而互補輸出分別為PB13 PB14 PB15 中止PB12
void GPIO_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//設置推挽輸出
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//PWM波設為復用推挽輸出
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
//GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//設置推挽輸出
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//PWM波設為復用推挽輸出
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//PWM波設為復用推挽輸出
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//PWM波設為復用推挽輸出
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
再對TIM1進行配置:
void TIM1_PWM_1_init()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_DeInit(TIM1);
TIM_TimeBaseStructure.TIM_Prescaler=4000;//預分頻(時鐘分頻)72M/4000=18K
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period=144;//裝載值 18K/144=125Hz 向上加144就滿了
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;//設置了時鐘分割
TIM_TimeBaseStructure.TIM_RepetitionCounter=0x00;//周期數值
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);//初始化TIMX的時間計基數單位
/*channel 1 configuration in pwm mode 通道一的PWM*/
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;//PWM模式2
TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//正向通道有效
TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;//方向通道有效
TIM_OCInitStructure.TIM_Pulse=40;//占空時間144中有40的時間為高,互補的輸出正好相反
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;//輸出極性
TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;//互補端的輸出極性
TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;//空閑狀態下的非工作狀態下
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;
TIM_OC1Init(TIM1,&TIM_OCInitStructure);//初始化外設TIMX通道1
//*************************************通道2******************************************//
TIM_OCInitStructure.TIM_Pulse=60;//占空比的初值
TIM_OC2Init(TIM1,&TIM_OCInitStructure);//初始化外設TIMX通道2
//**************************************通道3********************************************//
TIM_OCInitStructure.TIM_Pulse=70;
TIM_OC3Init(TIM1,&TIM_OCInitStructure);//初始化外設TIMX通道3
//************************************通道4***********************************************//
TIM_OCInitStructure.TIM_Pulse=80;
TIM_OC2Init(TIM1,&TIM_OCInitStructure);//初始化外設TIMX通道4
TIM_Cmd(TIM1,ENABLE);
TIM_CtrlPWMOutputs(TIM1,ENABLE);
}
//設置TIM1捕獲寄存器 設置占空比
void SetT1Pwm1(u16 pulse1,u16 pulse2,u16 pulse3,u16 pulse4 )
{
TIM1->CCR1=pulse1;
TIM1->CCR2=pulse2;
TIM1->CCR3=pulse3;
TIM1->CCR4=pulse4;
}
時鐘配置
void RCC_Configuration(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOD, ENABLE);
}
接下來就是主函數了
void main()
{
RCC_Configuration();
GPIO_init();
TIM1_PWM_1_init();
SetT1Pwm1(10,20,30,40);//控制4路PWM的占空比
while(1);
}
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲做受高潮无遮挡
|
久久久精品一区
|
国产精品羞羞答答
|
久久久午夜
|
成人午夜小视频
|
黄色免费一级片
|
成人区精品一区二区婷婷
|
欧美黄视频
|
中文字字幕在线中文
|
国产成人三级在线观看
|
av片在线看
|
免费在线观看www
|
天天躁日日躁狠狠躁
|
夜夜欢视频
|
黄色三级大片
|
日韩亚洲天堂
|
国产精品美女久久
|
欧美日韩小视频
|
国产精品一级
|
国产不卡在线视频
|
www.亚洲天堂
|
欧美bbb
|
欧美精品一区二区在线观看
|
av2014天堂网
|
三年中文在线观看免费大全中国
|
青青青草视频在线观看
|
一道本av
|
国产精品欧美在线
|
日韩视频精品
|
久久久噜噜噜
|
久久久久久国产精品
|
国产三级成人
|
国产精品aaa
|
欧美aaaaa
|
欧美日韩国产成人
|
国产91av在线
|
久久久久黄色
|
亚洲午夜久久久
|
久久性生活视频
|
免费在线成人网
|
av黄色片
|