Thread 中讨论的其他器件:SysConfig
工具/软件:Code Composer Studio
尊敬的 TI:
每当我们使用 TCK 引脚作为 PWM,并将 GPIO28定义为输入引脚时,该 GPIO 不接受任何输入,而使用另一个引脚更改 PWM 时,gpio28工作正常。 请告诉我们发生这种情况的原因。 请帮助我们解决此问题。
SysConfig 图片中的 gpio28
PWM SysConfig 图片
BR、
Sarju Bhatnagar
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.
工具/软件:Code Composer Studio
尊敬的 TI:
每当我们使用 TCK 引脚作为 PWM,并将 GPIO28定义为输入引脚时,该 GPIO 不接受任何输入,而使用另一个引脚更改 PWM 时,gpio28工作正常。 请告诉我们发生这种情况的原因。 请帮助我们解决此问题。
SysConfig 图片中的 gpio28
PWM SysConfig 图片
BR、
Sarju Bhatnagar
感谢您的回复 Sarah P、
请在此处找到 ti_drivers_config.c 文件。
e2e.ti.com/.../3343.ti_5F00_drivers_5F00_config.c
请看一下、并告诉我这个问题。
再次感谢。
Sarju Bhatnagar
感谢您的连接、
对于 GPIO:
GPIO_init();在 main 内部声明。 和引脚设置
这就是我为 GPIO 初始化所做的工作,之后我只想使用读取 GPIO 输入
IF (GPIO_READ (Relay_Check_L_N)) { IoT_INFO (“Relay L N:high”); } 其他 { IoT_INFO (“Relay L N:low”); }
要检查 GP28是高电平还是低电平、但它不会改变它的状态、它始终为低电平。 同时为其提供高3.3V 电压。 当 TCK 用作 PWM 时、会发生这种情况。
一旦 TCK 被另一个 PWM 引脚取代、GPIO28就会做出良好响应。
以下是 PWM 的设置详细信息:
在 main 内
PWM_init();
以打开 PWM
静态空 Relay_Enable_2_Initialer()
{
/*以微秒为单位的周期和占空比*/
uint16_t pwmPeriod = 1000;//3000;->对于1KHz 频率、为1000ms
PWM_PARAMS_INIT (params);
params.dutyUnits = PWM_Duty_US;
params.dutyValue = 0;
params.periodUnits = PWM_PERIOD_US;
params.periodValue = pwmPeriod;
params.idleLevel = PWM_IDLE_LOW;
pwm2 = PWM_OPEN (Relay_Enable_2、params);
if (pwm2 =NULL)
{
Display_printf (display、0、0、" Relay_Enable_2未打开\n");
/* CONFIG_PWM_0未打开*/
ASSERT_ON_ERROR (-1);
while (1)
;
}
其他
{
Display_printf (display、0、0、" Relay_Enable_2 opened\n");
}
// PWM_Pulse 生成器(250);
}
并设置占空比
静态空 Relay_Enable_1_Pulse 生成器(uint16_t Duty)//Duty 是一个模拟值。 { PWM_START (pwm1); PWM_setDuty (pwm1、Duty); }
就是这样。
我希望它能帮助您理解这个问题。
如果某个地方出现问题、请告知我们。
再次感谢、
Sarju Bhatnagar
您好 Sarju Bhatnagar、
API 的使用看起来都是正确的。 我唯一要让您检查的是您正在 Relay_Enable_2_Initializer ()中打开 handle pwm2,但您正在 Relay_Enable_1_Pulse Generator()中启动 pwm1。 您在发布时可能已经更换了这些器件、因此请在代码中进行验证。
在原始帖子中、您说" GPIO 未接受任何输入。" 这是否意味着 GPIO_Read 不会返回? 值是否不正确? 此外、您是在定制板还是 LaunchPad 上进行测试?
此致、
Sarah
您好、Sarah P、
抱歉我的错误,实际上是 Relay_Enable_2_Pulse_Generator(),我错误地截取了类似函数的屏幕截图。
实际功能低于-
静态空 Relay_Enable_2_Pulse_Generator (uint16_t Duty)//Duty 是一个模拟值。 { PWM_START (pwm2); PWM_setDuty (pwm2、Duty); }
其次、我的意思是 "GPIO 不接受任何输入"、是 GPIO 接受输入、但始终为低电平、但我为其提供高电平(3.3V)输入。
我正在使用定制板。
如果您想了解其他信息、请告诉我。
感谢您的支持。
Sarju Bhatnagar
您好 Sarju、
我正在尝试确定您的应用中发生了什么。 启动 PWM 后,您是否仍然看到“Relay L N : low”打印到串行终端?
我在 LaunchPad 上测试了一个使用 TCK 作为 PWM 的示例、并从 GPIO28读取输入(请参阅随附的)、我没有遇到任何问题。 没有内部引脚冲突。
此致、
Sarah