新手上路
- 积分
- 24
- 金钱
- 24
- 注册时间
- 2019-2-27
- 在线时间
- 12 小时
|
14金钱
高性能处理器的HRTIM看了参考手册感觉很好用,手上有一个H7的板子,想要测试一下PWM功能,可是网上又没有太多例子,自己参照参考手册写了一个例子,但是没有PWM输出,
检查了几遍,也没发现问题出在哪里,应该是哪个地方忽略掉了没考虑到。
以下是自己写的程序部分,各位帮忙看一看少了哪个步骤,还是哪个步骤出了错误??
==================================================
RCC->AHB4ENR|=1<<2; //使能PORTC时钟
GPIO_Set(GPIOC,PIN6|PIN7,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_HIGH,GPIO_PUPD_PU);//复用功能,上拉输出
GPIO_AF_Set(GPIOC,6,2); //PB1,AF2
GPIO_AF_Set(GPIOC,7,2); //PB1,AF2
RCC->CFGR|=1<<14;//预分频器时钟源为CPU 时钟(rcc_c_ck)
RCC->APB2ENR|=1<<29;//使能HRTIM 外设时钟
RCC->APB2RSTR|=1<<29;//复位HRTIM 模块
RCC->APB2LPENR|=1<<29;//CSleep 模式期间使能HRTIM 外设时钟
while((RCC->APB2RSTR|(1<<29))==(1<<29));
//MCR 控制寄存器
HRTIM1->sMasterRegs.MCR|=1<<27;//预装载使能
HRTIM1->sMasterRegs.MCR|=1<<3;//连续模式
HRTIM1->sMasterRegs.MCR|=5<<0;// 101 时钟预分频器
//MPER 主定时器周期寄存器
HRTIM1->sMasterRegs.MPER=0x0000FF00;
//MCNTR 主定时器计数寄存器
HRTIM1->sMasterRegs.MCNTR=0;
//MCMP1R 主定时器比较寄存器
HRTIM1->sMasterRegs.MCMP1R=0x0000FFDF/2;
//TIMxCR 控制寄存器
HRTIM1->sTimerxRegs[0].TIMxCR|=1<<27;//预装载使能
HRTIM1->sTimerxRegs[0].TIMxCR|=1<<24;//使能通过主定时器触发更新
HRTIM1->sTimerxRegs[0].TIMxCR|=1<<3;//连续模式
HRTIM1->sTimerxRegs[0].TIMxCR|=5<<0;//时钟预分频器
HRTIM1->sTimerxRegs[0].PERxR=0x0000FF00;//定时器A周期设置
HRTIM1->sTimerxRegs[0].CNTxR=0x00;//定时器A初始值为0
HRTIM1->sTimerxRegs[0].SETx1R|=1<<8;//主定时器比较1 事件会强制将输出设为其有效状态。
HRTIM1->sTimerxRegs[0].SETx2R|=1<<8;//主定时器比较1 事件会强制将输出设为其有效状态。
HRTIM1->sCommonRegs.OENR|=3<<0;
HRTIM1->sMasterRegs.MCR|=1<<16;//使能主定时器计数器
HRTIM1->sMasterRegs.MCR|=1<<17;//定时器A计数器使能
==================================================
|
|