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.

[参考译文] CCS/TM4C123GH6PM:写入特定 GPIO 锁定/复位微控制器

Guru**** 2204250 points
Other Parts Discussed in Thread: TM4C123GH6PM, EK-TM4C123GXL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/735688/ccs-tm4c123gh6pm-write-to-certain-gpio-locks-resets-microcontroller

器件型号:TM4C123GH6PM
Thread 中讨论的其他器件: EK-TM4C123GXL

工具/软件:Code Composer Studio

大家好、TI 论坛、

我还有另一个问题我自己无法解决、我正在寻求帮助。

所以。 我的问题是以下代码:

void writeData (axis_t* l_axis、uint8_t* data、uint8_t len)
//将数据写入 SPI、Datawidth 设置为8位;
{
int i;
对于(i=0;i latchpinBase、l_axis->latchpin、0);//启用 SPI 模块
SysCtlDelay (50);//每个字节传输后有125ns 的暂停;
SSIDataPut (l_axis->SPI_base、(uint32_t) data[i]);
while (SSIBusy (l_axis->SPI_base));
GPIOPinWrite (l_axis->latchpinBase、l_axis->latchpin、l_axis->latchpin);//禁用 SPI 模块<--- 这一行
SysCtlDelay (50);//每个字节发送后有625ns 暂停;
}
} 

使用 GPIO_PORT_D GPIO_PIN_3作为目标时、会中止/锁定微控制器。 使用其他端口/引脚有效。

端口和引脚使用进行配置

MAP_GPIOPinTypeGPIOOutput (GPIO_PORTD_BASE、GPIO_PIN_1);
MAP_GPIOPinWrite (GPIO_PORTD_BASE、GPIO_PIN_1、GPIO_PIN_1);
MAP_GPIOPadConfigSet (GPIO_PORTD_base、GPIO_PIN_1、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD);

至于 pinmuxtool 的输出、我添加了 padConfigSet、希望它可以解决该问题。

问题是、该代码的前几次工作正常(可靠)、但使用某些 USB/命令处理程序发出的此命令时、它会失败。

我使用 TivaC Launchpad、调试器被解连接。 如果不使用调试器、微控制器就会变得无响应(从 USB 看到)、需要重新启动。 因此、我不能只读出错误数据、告诉您 uController 是否在某些 ISR 中。 为另一个(在这种情况下通常会有所帮助)更改 Launchpad 在此处不起作用。

我把它煮到了生产线上

HWREG (ui32Port +(GPIO_O_DATA +(ui8引脚<< 2)))= ui8Val;

那么、有什么问题吗? 您是否遇到过类似的问题? 您能不能让我指向某个方向、因为我对我现在可以做的事情感到有点不清楚。

我在 Windows 10上使用 ccs7、

TivaWare 2.1.178 driverlib 和 usblib、针对 TM4C123GH6PM 重新编译

PD1也是我在这里使用的 SSI 模块的 FSS 信号、但 FSS 使用 TIPinMux 被禁用。

在 SPI mode3中使用 SSI、并使用 INIT

SysCtlPeripheralEnable (SYSCTL_Periph_SSI1);
while (!SysCtlPeripheralReady (SYSCTL_Periph_SSI1));
SSIConfigSetExpClk (SSI1_base、SysCtlClockGet ()、SSI_FRF_MOTO_MOTO_MODE_3、// Moto fmt、极性1、 阶段1、
SSI_MODE_MASTER、SPI_FREQ、8);
//
//启用 SSI0模块。
//
SSIEnable (SSI1_base); 

也不应启用相应的 FSS 引脚。

大多数论坛 GPIO 相关主题都是关于不正确设置引脚、但在我的案例中、它会重置整个 uController。

我使用观察点来检查_stack_top、但它没有被写入、因此我认为它不是 stackoverflow 错误。

所以... 希望您的想法和意见

Olli

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

    我无法重新创建您的问题。

    [引用用户="Oliver Schwanke"]使用 GPIO_PORT_D GPIO_PIN_3时,中止/锁定微控制器[/引用]

    通过"中止/锁定"、您意味着 JTAG 访问丢失了吗?

    您能否使用 EK-TM4C123GXL 提供显示此问题的项目?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我没有听到您的反馈、因此我假设您已解决了这个问题。 我将关闭此主题。 您可以回复此主题、如果问题未得到解决、它将重新打开。