在线时间9 小时
UID3322958
ST金币93
蝴蝶豆0
注册时间2016-12-26
该用户从未签到
初级会员
- 最后登录
- 2019-6-19
|
楼主 |
发表于 2017-8-1 15:52:31
|
显示全部楼层
- void PWM_OUT_Init()
- {
- //PA8 9 10 对应CBA 相 PA7 PB0 PB1 对应C-B-A-相 复用推挽输出
- GPIO_InitTypeDef GPIO_InitStructure;
- TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
- TIM_OCInitTypeDef TIM_OCInitStructure;
- // TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
-
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_TIM1 | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOA , ENABLE); ///RCC_APB2Periph_AFIO
- GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1, ENABLE); //需要部分重映像
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOA, &GPIO_InitStructure);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
-
- TIM_DeInit(TIM1);
-
- /* Time Base configuration */
- TIM_TimeBaseStructure.TIM_Prescaler = 0;
- TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
- TIM_TimeBaseStructure.TIM_Period = 4500; /// PWM 16K
- TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
- TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
- TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
- /* Channel 1, 2,3 and 4 Configuration in PWM mode */
- TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; ///TIM_OCMode_PWM2 TIM_OCMode_Timing
- TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
- TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
- TIM_OCInitStructure.TIM_Pulse = 2000;
- TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; ///TIM_OCNPolarity_High
- TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;
- TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset; ///TIM_OCNIdleState_Set
- TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Reset;
- TIM_OC2Init(TIM1, &TIM_OCInitStructure);
- TIM_OC1Init(TIM1, &TIM_OCInitStructure);
- TIM_OC3Init(TIM1, &TIM_OCInitStructure);
- /* TIM1 counter enable */
- TIM_Cmd(TIM1, ENABLE);
- /* Main Output Enable */
- TIM_CtrlPWMOutputs(TIM1, ENABLE);
- }
复制代码
- int main(void)
- {
- delay_init(); //延时函数初始化
- NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
- GPIO_init();
- USART_init();
- // Hall_Init();
- PWM_OUT_Init();
- GPIO_SetBits(GPIOA,GPIO_Pin_1); //TX_OE
- TIM_SelectOCxM(TIM1, TIM_Channel_1, TIM_OCMode_PWM1);
- TIM_CCxCmd(TIM1, TIM_Channel_1, TIM_CCx_Enable);
- TIM_CCxNCmd(TIM1, TIM_Channel_1, TIM_CCxN_Disable);
- /* Channel2 configuration */
- TIM_SelectOCxM(TIM1, TIM_Channel_2, TIM_OCMode_PWM1 );
- TIM_CCxCmd(TIM1, TIM_Channel_2, TIM_CCx_Enable);
- TIM_CCxNCmd(TIM1, TIM_Channel_2, TIM_CCxN_Enable);
- /* Channel3 configuration */
- TIM_SelectOCxM(TIM1, TIM_Channel_3, TIM_OCMode_PWM1);
- TIM_CCxCmd(TIM1, TIM_Channel_3, TIM_CCx_Enable);
- TIM_CCxNCmd(TIM1, TIM_Channel_3, TIM_CCxN_Enable);
- //N 通道受主通道影响 主DISABLE 则N通道也关闭
- // TIM1->BDTR &=0xfc00; //解锁
- // TIM1->BDTR |= 0x8800;
- // TIM1->CR2 |=0x1f80;
- // TIM1->CCER = 0x00;
- // TIM1->CCER |= 0x555;
- }
复制代码
代码部分没贴上去,补一下 |
|