完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用战舰开发板的高级定时器产生PWM波,在例程基础上改的程序,结果不能产生PWM波 高级定时器的配置和普通应该有什么区别吗 还有利用定时器2 产生PWM波 PA1可以实现PB10 PB3等选用同样的方法竟然不行 这是什么问题
void tiM1_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_FullRemap_TIM1, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOE, &GPIO_InitStructure); TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_Prescaler =psc; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC3Init(TIM1, &TIM_OCInitStructure); TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable); TIM_Cmd(TIM1, ENABLE); } 以上是代码 还有就是关于这些重映射还有复用等功能真的没有很好地理解 希望能得到详细解答 谢谢 |
|
相关推荐
10个回答
|
|
|
|
|
|
TIM1必须使能MOE才可以输出PWM
|
|
|
|
学习一下
|
|
|
|
|
|
|
|
[C] 纯文本查看 复制代码
//通过TIM1的CH1输出互补的两个信号//通过TIM8的CH1输出做刹车信号void TIM1_configration(void){GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 | RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8 | RCC_APB2Periph_GPIOC, ENABLE);//TIM1: PA8为CH1_OC1 PB13为CH1_OC1N PB12为刹车信号输入端GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;GPIO_Init(GPIOB, &GPIO_InitStructure); //PB13和PA8配置为复用推挽输出GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_Init(GPIOB, &GPIO_InitStructure); //PB12做TIM1_BKIN//TIM8:PC7位OC2输出 用作刹车信号GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;GPIO_Init(GPIOC, &GPIO_InitStructure); //PC7 //CH1_OC2通道配置 用作刹车信号输出TIM8->PSC = 899; //80KHz频率TIM8->ARR = 20000; //计时0.25s TIM8->CNT = 0X00;TIM8->CCMR1 &= ~(0X03<<8);TIM8->CCMR1 |= 1<<10;TIM8->CCMR1 |= 0X06<<12; //PWM输出模式1TIM8->CCR2 |= 10000; //占空比50%TIM8->CCER |= 1<<4; //OC2输出使能TIM8->DIER = 0X00;TIM8->SR = 0X00;TIM8->BDTR |= 1<<15; TIM8->CR1 = 0X01; //使能计数器//TIM1:CH1_OC通道配置//时基单元配置TIM1->PSC = 0; //80KHz频率TIM1->ARR = 5000; //计时0.5ms TIM1->CNT = 0X00;TIM1->DIER = 0X00; //无中断TIM1->CR2 |= (0<<9 | 0<<8); //设置OIS1=0 OIS1N = 0 TIM1->SR = 0X00; //SR设置缺省值TIM1->CCMR1 |= 0X74; //pwm2模式 CC1输出TIM1->CCER |= 0X09; //使能CC1E 禁止CC1ENTIM1->CCR1 = 2000; //占空比20%TIM1->BDTR = 0XFFE2; //死区时间10.9us 高电平刹车TIM1->CR1 = 0X201; //使能计数器}--------------------- 作者:快乐555 来源:CSDN 原文:https://blog.csdn.net/u014170207/article/details/50885511 版权声明:本文为博主原创文章,转载请附上博文链接! |
|
|
|
主要是没用用过TIM1 所以不知道要使能MOE 才能输出 以为和其他定时器一样 谢谢解答
|
|
|
|
求问 一个定时器可以同时采集4路PWM波吗 有没有程序可以参考
|
|
|
|
一个定时器能不能擦产生4路不同频率的PWM
|
|
|
|
我这没试过 也没有方法,你要网上找找资料看看了
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
890 浏览 2 评论
12816 浏览 0 评论
4113 浏览 7 评论
2329 浏览 9 评论
2153 浏览 2 评论
449浏览 2评论
770浏览 2评论
892浏览 2评论
390浏览 1评论
613浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 03:07 , Processed in 1.693790 second(s), Total 95, Slave 79 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号