新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2017-7-18
- 在线时间
- 4 小时
|

楼主 |
发表于 2017-7-21 10:02:45
|
显示全部楼层
int main()
{
Stm32_Clock_Init(9);
delay_init(72);
GPIOB->CRL&=0xff0fffff; //推挽输出
GPIOB->CRL|=0x00300000;
PBout(5)=1;
delay_ms(67);
PBout(5)=0;
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(500);
TIM3_CH2_PWM_Init(399,3599); //周期20ms
LED0_PWM_Value=40;
While(1);
}
void TIM3_CH2_PWM_Init(u16 arr ,u16 pre)
{
RCC->APB1ENR|=1<<1; //使能定时器 GPIOB 辅助
RCC->APB2ENR|=1<<3;
RCC->APB2ENR|=1<<0;
GPIOB->CRL&=0xff0fffff; // 复用功能输出
GPIOB->CRL|=0x00B00000;
AFIO->MAPR|=2<<10; //部分重映射
TIM3->ARR=arr; //重装载值
TIM3->PSC=pre; //分频数
TIM3->CCMR1|=6<<12; // PWM模式一
TIM3->CCER |=1<<4; // PWM使能 有效电平默认为高电平
TIM3->CR1|=1<<0; //开启定时器
}
我想在PB5先输出67ms的低电平,然后4.5s的高电平,下面输出PWM波
但是我用逻辑分析是先出现8s左右的高电平,然后是PWM波 PWM是稳定的没有问题
我不明前面的8s高电平怎么来的?而且我在程序中也对其拉低了 |
|