با سلام خدمت تمامی مهندسین
من میخواستم با استفاده از کتابخانه CMSIS و توسط میکرو کنترلر STM32F107RCT6(64PIN) و با کامپایلر KEIL یه سروو موتورو درایور کنم
مجبور هستم که یه موج با فرکانس 1khz و با عرض پالس متقییر بین 2ms , 1ms تولید کنم .
ممنون میشم اگر کسی کار کرده راهنماییم کنه .
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
TIM_DeInit(TIM1);
TIM_TimeBaseInitStructure.TIM_Period = 0x0000;
TIM_TimeBaseInitStructure.TIM_Prescaler =0x0001;
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CK D_DIV4;
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_RepetitionCounter=EN ABLE;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseInitStructure);
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputStat e_Enable;
TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNSt ate_Enable;
TIM_OCInitStructure.TIM_Pulse=0x0000;
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_ Low;
TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarit y_Low;
TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleStat e_Set;
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleSt ate_Reset;
TIM_OC1Init(TIM1,&TIM_OCInitStructure);
TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_ Enable;
TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_ Enable;
TIM_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_ 1;
TIM_BDTRInitStructure.TIM_DeadTime=0x0001;
TIM_BDTRInitStructure.TIM_Break=TIM_Break_Disable;
TIM_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakP olarity_High;
TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_Auto maticOutput_Enable;
TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);
TIM_Cmd(TIM1 ,ENABLE);
TIM_CtrlPWMOutputs(TIM1,ENABLE);
مهندسین محترم اینارو هم نوشتم اما خوب خیلی کم ازش سر در میارم
من میخواستم با استفاده از کتابخانه CMSIS و توسط میکرو کنترلر STM32F107RCT6(64PIN) و با کامپایلر KEIL یه سروو موتورو درایور کنم
مجبور هستم که یه موج با فرکانس 1khz و با عرض پالس متقییر بین 2ms , 1ms تولید کنم .
ممنون میشم اگر کسی کار کرده راهنماییم کنه .
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
TIM_DeInit(TIM1);
TIM_TimeBaseInitStructure.TIM_Period = 0x0000;
TIM_TimeBaseInitStructure.TIM_Prescaler =0x0001;
TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CK D_DIV4;
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInitStructure.TIM_RepetitionCounter=EN ABLE;
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseInitStructure);
TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState=TIM_OutputStat e_Enable;
TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNSt ate_Enable;
TIM_OCInitStructure.TIM_Pulse=0x0000;
TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_ Low;
TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarit y_Low;
TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleStat e_Set;
TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleSt ate_Reset;
TIM_OC1Init(TIM1,&TIM_OCInitStructure);
TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_ Enable;
TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_ Enable;
TIM_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_ 1;
TIM_BDTRInitStructure.TIM_DeadTime=0x0001;
TIM_BDTRInitStructure.TIM_Break=TIM_Break_Disable;
TIM_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakP olarity_High;
TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_Auto maticOutput_Enable;
TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);
TIM_Cmd(TIM1 ,ENABLE);
TIM_CtrlPWMOutputs(TIM1,ENABLE);
مهندسین محترم اینارو هم نوشتم اما خوب خیلی کم ازش سر در میارم