TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310PWM驱动打开失败

请教大家一个问题:

我将simplelink_cc13x0_sdk_1_60_00_版本SDK中PWM例程移植到Sensor例程中,发现PWM打开失败。最终发现,程序停在了这里

pwm1 = PWM_open(Board_PWM0, &params);
if (pwm1 == NULL) {
/* Board_PWM0 did not open */
while (1);
}、

进入到pwm_open函数中调试。

/* Get handle for this driver instance */
handle = (PWM_Handle) &(PWM_config[index]);

这是handle还不为空,,但执行了下边这个,handle就变成了空。

handle = handle->fxnTablePtr->openFxn(handle, params);

请问问题出在了哪

Viki Shi:

handle为空的可能性有很多,是否能提供更详细描述或完整程序?另外排查一下你是否使用了其他driver及相关引脚,是否配置正确

Invoker:

回复 Viki Shi:

您好:

1、我在sensor.c中定义了全局变量

uint16_t pwmPeriod = 3000;uint16_t duty = 0;uint16_t dutyInc = 100;

/* Sleep time in microseconds */uint32_t time = 50000;PWM_Handle pwm1 = NULL;PWM_Handle pwm2 = NULL;PWM_Params params;

在Sensirinit()函数的最后增加了

/* Call driver init functions. */ PWM_init(); PWM_Params_init(&params); params.dutyUnits = PWM_DUTY_US; params.dutyValue = 0; params.periodUnits = PWM_PERIOD_US; params.periodValue = pwmPeriod; pwm1 = PWM_open(CC1310_LAUNCHXL_PWM0, &params); if (pwm1 == NULL) { /* Board_PWM0 did not open */ while (1); }

PWM_start(pwm1);

PWM接的IO接的是LED, 对应5*5封装IOID_9。其余管脚配置为PIN_UNASSIGNED

/* PWM Outputs */#define CC1310_LAUNCHXL_PWMPIN0     IOID_9#define CC1310_LAUNCHXL_PWMPIN1     PIN_UNASSIGNED#define CC1310_LAUNCHXL_PWMPIN2     PIN_UNASSIGNED#define CC1310_LAUNCHXL_PWMPIN3     PIN_UNASSIGNED#define CC1310_LAUNCHXL_PWMPIN4     PIN_UNASSIGNED#define CC1310_LAUNCHXL_PWMPIN5     PIN_UNASSIGNED#define CC1310_LAUNCHXL_PWMPIN6     PIN_UNASSIGNED#define CC1310_LAUNCHXL_PWMPIN7     PIN_UNASSIGNED

2、其他的driver我用到了UART,对应的IO是0 和 1,没有和PWM冲突,UART之前一直在用,没问题。这次只是增加了PWM。

Alvin Chen:

回复 Invoker:

你单独在测试PWM时时正常的对吧?
你有按照你pwm的demo的板级文件去配置你sensor的板级文件?

Invoker:

回复 Alvin Chen:

您好:我移植了board.h 和CC1310LAUNCHXL的.c和.h文件,但只是移植了PWM对应的部分。

Alvin Chen:

回复 Invoker:

5×5 io没那么多,你对应手册把IO设置一下试试。

Invoker:

回复 Alvin Chen:

您好:IO的配置我已改成5*5的了,而且已经跑通了。没用的IO已全部注释掉,现在是有一个用到PWM的需求。所以加上了这个

Alvin Chen:

回复 Invoker:

pwm1 = PWM_open(Board_PWM0, &params);
设置为上面这样试试,CC1310LAUNCHXL.c中改一下io就可以。

Invoker:

回复 Alvin Chen:

非常感谢您的回答:

您说的CC1310LAUNCHXL.c中修改,我在SDK安装目录下的和Sensor例程的工程里的CC1310LAUNCHXL.c都没找到,在PWM的历程中的CC1310LAUNCHXL.h中找到了。我是这样修改的我在Sensor的工程里添加了.c和.h文件,将PWM例程中CC1310LAUNCHXL.c和CC1310LAUNCHXL.h

中PWM的相关部分移植了过来。包括您说的那个IO宏定义。

nsonninnnooakdf

 testpwm.h

Invoker:

回复 Alvin Chen:

赞(0)
未经允许不得转载:TI中文支持网 » CC1310PWM驱动打开失败
分享到: 更多 (0)