STM32 TIM1的PWM没有输出
来源:互联网 发布:破解软件的app 编辑:程序博客网 时间:2024/05/21 21:35
设置了TIM1的CHN1及CHN4输出PWM,代码如下,但是仿真的波形不对,上设备也不正确:
RCC->APB2ENR|=1<<11; //TIM1时钟使能 RCC->APB2ENR|=1<<2; //使能PORTA时钟 GPIOA->CRH&=0XFFFFFFF0;//PA8输出GPIOA->CRH|=0X0000000B;//通用推挽输出 GPIOA->ODR|=1<<8;//PA8上拉GPIOA->CRH&=0XFFFF0FFF;//PA11输出GPIOA->CRH|=0X0000B000;//通用推挽输出 GPIOA->ODR|=1<<11;//PA11上拉TIM1->ARR=arr;//设定计数器自动重装值 TIM1->PSC=psc;//预分频器不分频TIM4->ARR=arr;//设定计数器自动重装值 TIM4->PSC=psc;//预分频器不分频TIM1->CCMR1|=6<<4; //CH1 PWM2模式 TIM1->CCMR1|=1<<3; //CH1预装载使能 TIM1->CCMR2|=7<<12; //CH4 PWM2模式 TIM1->CCMR2|=1<<11; //CH4预装载使能 TIM1->CCER|= pwdState << 0; //OC1 输出使能 TIM1->CCER|= pwdState << 12; //OC1 输出使能 TIM1->CR1=0x8000; //ARPE使能 TIM1->CR1|=0x01; //使能定时器1
查寄存器手册,发现TIM1有一个MOE位,控制了TIM1的输出:MOE: 主输出使能 (Main output enable) 位15 一旦刹车输入有效,该位被硬件异步清’0’。根据AOE位的设置值,该位可以由软件清’0’或被自动置1。它仅对配置为输出的通道有效。 0:禁止OC和OCN输出或强制为空闲状态; 1:如果设置了相应的使能位(TIMx_CCER寄存器的CCxE、CCxNE位),则开启OC和OCN输出。 有关OC/OCN使能的细节,参见13.4.9TIM1和TIM8捕获/比较使能寄存器(TIMx_CCER)。
加上下面这句代码,输出就正常了:
TIM1->BDTR |= 1<<15;
- STM32 TIM1的PWM没有输出
- stm32 基于TIM1定时器的PWM输出
- STM32 PWM输出总结 TIM1
- STM32 TIM1 做PWM输出问题
- STM32的TIM1_CH1N反向引脚输出PWM波.txt
- STM8 tim1 ch1 PWM输出
- STM32F407 关于TIM1输出PWM
- STM32 TIM1输出互补波形
- STM32F4 TIM1 7路PWM信号输出
- stm32f103使用TIM1和TIM2输出PWM
- stm32f0 TIM1实现输出PWM波形
- stm32通用定时器的PWM输出
- stm32定时器TIM2的PWM输出PB3
- stm32 PWM输出学习
- STM32定时器PWM输出
- stm32之PWM输出
- stm32 PWM输出
- STM32 PWM输出函数
- 混迹于C++之对象概念和关键字public 、protected、 private
- 安装MySQL步骤
- oracle dbca命令克隆实例
- Apache和PHP安装
- 【索引】Sorting/Searching
- STM32 TIM1的PWM没有输出
- 心---痛了
- jquery 学习
- GetMemory错误程序讲解(指针练习)
- Windows 8开启隐藏Administrator账户
- 单片机连接ULN2003驱动步进电机的应用
- jquery 循环的方式
- jquery checkebox 全选 全不选 反选
- js 中获得session中的值