主题中讨论的其他器件: SysConfig
您好!
我正在尝试对 Launchpad 板(CC1352P)中的8个 PWM 输出进行其中的一个进行路由。 我使用了下面的示例代码、但在引脚23上看不到输出。 是否可以将 PWM 信号的输出路由到 DIO23? 我可以看到两个 LED 都亮起、但在 DIO23上看不到信号。
PS:调用 PINCC26XX_getMux (PIN_ID (23))返回-1、PIN_ID (Board_PWM0)也是如此
谢谢
void *mainThread (void *arg0)
{
/*以微秒为单位的周期和占空比*/
uint16_t pwmPeriod = 500000;
uint16_t DUTY = 0;
uint16_t dutyInc = 100;
//根据需要相应地设置引脚配置
//硬件设置
CONST PIN_Config ULTRASON_PIN_SETUP []=
{
CC1352P_2_LAUNCHXL_DIO23_ANALOG |//引脚进行配置
PIN_GPIO_OUTPUT_EN |//使输出启用
PIN_GPIO_LOW |//以0V 开始
PIN_DRVSTR_MAX、 //最大驱动输出
引脚终止
};
//保留用于回调的超声波引脚句柄
PIN_Handle ULTRASONIC_PIN_Handle;
PIN_STATE ULTRASONIC_PIN_STATE ;
//设置超声波引脚
ULTRASONIC_PIN_Handle = PIN_OPEN (&ULTRASONIC_PIN_STATE、
ULTRASONIC_PIN_SETUP);
IF (ULULTRASONIC_PIN_Handle == NULL)
{
while (1);
}
// GPIO 引脚输出控制需要
IF (PIN_setOutputEnable (ULTRASONIC_PIN_Handle、
CC1352P_2_LAUNCHXL_DIO23_ANALOG、true)!=
PIN_SUCCESS)
{
while (1);
}
/*以微秒为单位的睡眠时间*/
uint32_t time = 50000;
PWM_Handle pwm1 = NULL;
PWM_Handle pwm2 = NULL;
PWM_Params 参数;
/*调用驱动程序初始化函数。 */
PWM_INIT();
PWM_PARAMS_INIT (¶ms);
params.dutyUnits = PWM_DUTY_US;
params.dutyValue = 0;
params.periodUnits = PWM_PERIOD_US;
params.periodValue = pwmPeriod;
pwm1 = PWM_OPEN (Board_PWM0、¶ms);
if (pwm1 == NULL){
/* Board_PWM0未打开*/
while (1);
}
PWM_START (pwm1);
pwm2 = PWM_open (Board_PWM1、¶ms);
如果(pwm2 == NULL){
/* Board_PWM0未打开*/
while (1);
}
//pwm_start (pwm2);
//PINCC26XX_setMux (ULTRASONIC_PIN_Handle、PIN_ID (23)、PIN_ID (Board_PWM0));
/*循环永远递增 PWM 占空比*/
while (1){
PWM_setDuty (pwm1、占空比);
//pwm_setDuty (pwm2、Duty);
Duty =(Duty + dutyInc);
如果(Duty == pwmPeriod ||(!Duty)){
dutyInc =- dutyInc;
}
usleep (时间);
}
}