- 打卡等级:初来乍到
- 打卡总天数:5
- 最近打卡:2025-06-13 08:10:35
注册会员
- 积分
- 70
|
修改一下,我用的是32G8K64,
我的目的是需要读取4路PWM的高电平宽度,然后还要输出2路PWM,
但是按照我学习例程的方法只能读取2路,不会读取4路,
请哪位大神指导一下,谢谢!程序如下:
void PWM_Config() // PWM初始化设置
{
//--------------------------PWMA设置-CC1捕获上升沿、CC2捕获下降沿-----------------------
PWMA_CCER1 = 0x00; // 关闭通道
PWMA_CCMR1 = 0x01; // CC1通道配置为输入,映射在TI1FP1上
PWMA_CCMR2 = 0x02; // CC2通道配置为输入,映射在TI1FP2上
PWMA_CCER1 = 0x11; // 使能CC1、CC2通道
PWMA_CCER1 |= 0x00; // 设置CC1捕获上升沿
PWMA_CCER1 |= 0x20; // 设置CC2捕获下降沿
PWMA_CCER2 = 0x00; // 关闭通道
PWMA_CCMR3 = 0x01; // CC3通道配置为输入,映射在TI1FP3上
PWMA_CCMR4 = 0x02; // CC4通道配置为输入,映射在TI1FP4上
PWMA_CCER2 = 0x11; // 使能CC3、CC4通道
PWMA_CCER2 |= 0x00; // 设置CC3捕获上升沿
PWMA_CCER2 |= 0x20; // 设置CC4捕获下降沿
PWMA_IER = 0x1e; // 使能CC2捕获中断
PWMA_CR1 |= 0x01; // 使能PWMA计数器,启动PWM定时器
PWMB_PSCRH = (u16)(PWMB_PSC >> 8);
PWMB_PSCRL = (u16)(PWMB_PSC); // 预分频
PWMB_CCER1 = 0x00; // 关闭通道
PWMB_CCMR1 = 0x60; // 通道模式配置为输出,PWM模式1
PWMB_CCMR2 = 0x60; //原值0x30 设置 CC6 为 PWMB 输出模式,翻转电平
PWMB_CCER1 = 0x11; // 使能捕获/比较通道5,使能CCR预装载,原来值05
PWMB_CCR5H = (u16)(22 >> 8);
PWMB_CCR5L = (u16)(22 );
PWMB_CCR6H = (u16)(22 >> 8); // 设置 CC6 初始占空比 0 %
PWMB_CCR6L = (u16)(22 );
PWMB_ARRH = (u16)(PWMB_PERIOD >> 8);
PWMB_ARRL = (u16)(PWMB_PERIOD); // 设置周期
PWMB_ENO = 0x55; // 使能PWM5,6,7,8输出
PWMB_BKR = 0x80; // 使能PWMB主输出
PWMB_CR1 |= 0x01; // 使能PWMB计数器,启动PWM定时器
}
|
|