- 打卡等级:初来乍到
- 打卡总天数:4
- 最近打卡:2025-02-12 11:31:19
已绑定手机
注册会员
- 积分
- 81
|
本帖最后由 DebugLab 于 2024-11-26 12:03 编辑
使用芯片:8A8K64D4
我在初始化P6.3和P1.4引脚的pwm的时候,设置P6.3的默认电平是1,P1.4的默认电平是0,但是烧录程序之后使用示波器测试这个两个引脚的pwm方波是相同的,没有180°改变
#include "PWM.h"
//配置GPIO
void GPIO_pwm_config(void) {
// P6M0 &= ~0x07; P6M1 &= ~0x07; // 配置 P6.0, P6.1, P6.2 为准双向(输出信息)
P6M0 |= 0x07; P6M1 |= 0x07; // 配置 P6.0, P6.1, P6.2 为推挽(输出信息)
// P60 = 0; //WS-T-PWM-OUT
// P61 = 0; //WS-L-PWM-OUT
// P62 = 0; //WS-ZZ-PWM-OUT
// P7M0 &= ~0x30; P7M1 &= ~0x30; //设置24V使能GD4-EN(P7.4)和12V使能GD3-EN(P7.5)的使能准双向
P7M0 |= 0x30; P7M1 &= ~0x30; //设置成推挽,不知道11/22程序抽什么风,使用准双向不能驱动启用12V的使能
P75 = 0;
P74 = 0;
//P6.3 GD2-EN (R30)
P6M0 |= 0x08; P6M1 &= ~0x08; //推挽
//P1.4(WS-JC-PWM-EN)
P1M0 |= 0x10; P1M1 &= ~0x10; //推挽
}
/******************** PWM15配置 ********************/
void PWM15_config(void)
{
PWM15_InitTypeDef PWM15_InitStructure; //PWM结构体
PWM15_InitStructure.PWM_Enable = ENABLE; //PWM使能, ENABLE, DISABLE
PWM15_InitStructure.PWM_Period = 18749; //PERIOD ≤ 65535(16 位计数器限制)
PWM15_InitStructure.PWM_Clock_Sel = PWM_CLK_SYS; //时钟源选择, PWM_CLK_SYS, PWM_CLK_TM2
PWM15_InitStructure.PWM_Clock_PS = 6; //系统时钟分频参数(PS+1分频), 0~15 8
PWM15_InitStructure.PWM_CInt = DISABLE; //计数器归零中断使能, ENABLE, DISABLE
PWM15_InitStructure.PWM_Counter = ENABLE; //计数器使能, ENABLE, DISABLE
PWM15_Init(&PWM15_InitStructure);
//P6.3(GD2-EN)的PWM配置
PWM15Duty(PWM15_3,18749 / 2, 18749); //P6.3占空比,50% 1Hz
//PWM通道控制寄存器设置(P6.3是通道3)
PWMChannelCtrl(PWM15_3,ENABLE,PWM15_SW_P6,1,DISABLE,DISABLE,DISABLE); //PWM_ID, 输出使能, 输出通道, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
// P1.4(WS-JC-PWM-EN)的PWM配置(1Hz)
PWM15Duty(PWM15_4, 18749 / 2, 18749); // P1.4的占空比,50% 1Hz
// PWM通道控制寄存器设置(P1.4是通道4)
PWMChannelCtrl(PWM15_4, ENABLE, PWM15_SW_P1,0, DISABLE, DISABLE, DISABLE);
}
//初始化pwm
void PWM_init(){
GPIO_pwm_config();
PWM15_config();
}
|
-
我在初始化P6.3和P1.4引脚的pwm
-
使用示波器测试P6.3和P1.4引脚方波信息是一样的
|