Слияние кода завершено, страница обновится автоматически
#include "motor.h"
#include "stm32f10x.h"
//A7
void motor_PWM_Init(unsigned short arr, unsigned short psc) {
//RCC->APB1ENR |= 1<<1; //TIM3 enable
//RCC->APB2ENR |= 1<<2; //GPIOA enable
RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; //TIM3 Enable
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; //IO Port A Enable
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; //IO Port B for TIM3 Channel 3 and 4
GPIOA->CRL &= 0x00FFFFFF; //Clean
GPIOA->CRL |= 0xBB000000; //复用推挽输出
GPIOA->ODR |= 1<<7; //CH2 GPIO Config
GPIOA->ODR |= 1<<6; //CH1 GPIO Config
GPIOB->CRL &= 0xFFFFFF00;
GPIOB->CRL |= 0x000000BB;
GPIOB->ODR |= 1;
GPIOB->ODR |= 1<<1;
TIM3->ARR = arr - 1;
TIM3->PSC = psc - 1;
TIM3->CCMR1 |= 6<<4; //CH1 Set OC1M[2:0]: PWM Mode
TIM3->CCMR1 |= 1<<3; //CH1 Set OC1PE: Enable
TIM3->CCMR1 |= 6<<12; //CH2 Set OC2M[2:0]: PWM Mode
TIM3->CCMR1 |= 1<<11; //CH2 Set OC2PE: Enable
TIM3->CCMR2 |= 6<<4; //CH3 Set OC3M[2:0]: PWM Mode
TIM3->CCMR2 |= 1<<3; //CH3
TIM3->CCMR2 |= 6<<12; //CH4
TIM3->CCMR2 |= 1<<11;
TIM3->CCER |= 1; //CH1 Output Enable
TIM3->CCER |= 1<<4; //CH2 Output Enable
TIM3->CCER |= 1<<8;
TIM3->CCER |= 1<<12;
TIM3->CR1 = 0x80; //APRE Enable
TIM3->CR1 |= 1; //Set CEN, Allow to Count
//TIM1->BDTR |= 1<<15; //高级定时器需要使能BDTR寄存器
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )