This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1352P:将 PWM 输出路由到 GPIO

Guru**** 2392075 points
Other Parts Discussed in Thread: CC1352P, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1311703/cc1352p-routing-pwm-output-to-gpio

器件型号:CC1352P
主题中讨论的其他器件: 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 (&params);
   params.dutyUnits = PWM_DUTY_US;
   params.dutyValue = 0;
   params.periodUnits = PWM_PERIOD_US;
   params.periodValue = pwmPeriod;
   pwm1 = PWM_OPEN (Board_PWM0、&params);
   if (pwm1 == NULL){
       /* Board_PWM0未打开*/
       while (1);
   }

   PWM_START (pwm1);

   pwm2 = PWM_open (Board_PWM1、&params);
   如果(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 (时间);
   }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    您正在使用哪个 SDK 版本? 您是否在使用 SysConfig?

    在这种情况下、如果您看一下 pwmled2示例、其 SysConfig 文件中包含如下内容:

    您可以看到、您可以按如下方式更改输出引脚:

    此致、

    亚瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Arthur、您好!

    我不使用 SysConfig (我在 Linux 中进行开发)。

    我还运行的 Code Composer Studio 版本:9.3.0.00012  

    和简单链接 SDK 3.10.10.01.11

    根据您的建议、我在 CC1352P_2_LAUNCHXL.h 的项目目录中查看了映射、它包含一个到已配置 PWM 的引脚映射。 我将修改其中一个未分配的引脚以指向 DIO23、然后查看是否可以解决这个问题。

    谢谢你的帮助,如果你能想到任何其他建议,请传递它。 再次感谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jonathan:

    您是否处于开发流程的早期? 这些工具并不是真正最新的。

    如果您可以这样做,我邀请您迁移到以下版本:

    至于您的担忧、这些工具确实有 Linux 支持。 它们正式支持以下发行版: https://software-dl.ti.com/ccs/esd/documents/users_guide_12.3.0/ccs_overview.html#linux

    此致、

    亚瑟

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Arthur、您好!

    我实际上在 DEV 很晚了。 我实际上在一两个月前尝试过迁移、但由于 PIN 接口被弃用、代码无法构建。 我想获得一个稳定的 dev、然后尝试进行迁移、因为它看起来像我使用的 CC 12.x 无法自动迁移源代码;因此我需要做一些工作来迁移代码。

    谢谢