Thread 中讨论的其他器件: CC2650、 SYSBIOS、 MSP432P401R、 BLE-STACK
工具/软件:Code Composer Studio
您好!
我一直在使用 CC2650Moda 并尝试使用 GPIO 引脚来打开/关闭非板载 LED。 我使用的示例是 Code Composer Studio、TI-RTOS CC2650 Launchpad 中的示例。 GPIO 写入(引脚、开/关)不工作。 此外、我使用以下命令启用了引脚:
const PIN_Config BoardGpioInitTable[]={
ioID_6 | PIN_GPIO_OUTP_EN | PIN_GPIO_HIGH | PIN_PushPull | PIN_DRVSTR_MAX、
我不确定我无法使用 GPIO 写入命令控制 LED 的原因是什么、如果有人帮助我如何打开/关闭板外 LED、我将不胜感激。
提前感谢您的观看、
Farinaz
这是我正在使用的 PWM 代码:
* ==== pwmled.c ===
*
/* XDCtools 头文件*/
#include
#include
/* BIOS 头文件*/
#include
#include
/* TI-RTOS 头文件*/
#include
#include
/*示例/板头文件*/
#include "Board.h"
#include //已添加此行
#define TASKSTACKSIZE 512
#include "driverlib/gpio.h" //已添加此行
Task_Structsk0Struct;
uint16 tsk0Stack[TASKSTACKSIZE];
Task_Handle 任务;
/*
* ==== pwmLEDFxn ===
* 任务会定期增加板载 LED 的 PWM 占空比。
*
空 pwmLEDFxn (UARg arg0、UARg arg1、UARg arg2、UARg arg3)
{
PWM_Handle pwm1;
PWM_Handle pwm2;
PWM_Handle pwm3;
PWM_Handle pwm4;
PWM_Handle pwm5;
PWM_PARAMS 参数;
uint16_t pwmPeriod = 30000; //周期和占空比、以微秒为单位
uint16_t Duty = 80;
uint16_t dutyInc = 10;
PWM_PARAMS_INIT (params);
params.dutyUnits = PWM_Duty_US;
params.dutyValue = 0;
params.periodUnits = PWM_PERIOD_US;
params.periodValue = pwmPeriod;
pwm1 = PWM_OPEN (Board_PWM0、params);
pwm2 = PWM_OPEN (Board_PWM1、params);
pwm3 = PWM_open (Board_PWM2、params);
pwm4 = PWM_OPEN (Board_PWM3、params);
pwm5 = PWM_OPEN (Board_PWM4、params);
if (pwm1 = NULL){
System_abort ("Board_PWM0 did not open");
}
PWM_START (pwm1);
PWM_START (pwm2);
PWM_START (pwm3);
PWM_START (pwm4);
PWM_START (pwm5);
/*循环永远递增 PWM 占空比*/
while (1){
PWM_setDuty (pwm1、占空比);
PWM_setDuty (pwm2、Duty);
PWM_setDuty (pwm3、占空比);
PWM_setDuty (pwm4、占空比);
PWM_setDuty (pwm5、Duty);
Duty =(Duty + dutyInc);
if (Duty =pwmPeriod ||(!Duty)){
dutyInc =- dutyInc;
}
Task_sleep ((UINT) arg0);
}
}
/*=========== main ==== *
int main (空)
{
Task_Params tskParams;
/*呼叫板初始化功能。*/
Board_initGeneral();
Board_initGPIO();
Board_initPWM();
/*构造 LED 任务线程*/
Task_Params_init (&tskParams);
tskParams.STACKSIZE = TASKSTACKSIZE;
tskParams.stack =&tsk0Stack;
tskParams.arg0 = 50;
Task_construct(&tsk0Struct,(Task_FuncPtr) pwmLEDFxn、&tskParams、NULL);
/*获取实例句柄*/
任务= Task_handle (&tsk0Struct);
/*打开用户 LED*/
GPIO_WRITE (IOID_6、1);
GPIO_WRITE (IOID_3、0;
GPIO_WRITE (IOID_5、1);
//System_printf ("启动示例\n 系统提供程序设置为 SysMin。 "
// "停止目标以查看 ROV 中的任何 SysMin 内容。\n");
/*SysMin 仅在调用 flush 或 exit 时才会打印到控制台*/
system_flush();
/*启动 BIOS*/
BIOS_start();
返回(0);
}
