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.

[参考译文] MSP432E401Y:在 code composer stduio 中对 MSP432 GPIO 进行编程

Guru**** 2551110 points
Other Parts Discussed in Thread: MSP432E401Y, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/992693/msp432e401y-msp432-gpio-programming-in-code-composer-stduio

器件型号:MSP432E401Y
Thread 中讨论的其他器件: SysConfig

大家好、  

我很想了解 MSP432E4编程、我有定制板、我想使用 SPI、UART、RS485等通信。 但我真的不知道如何开始、而是决定阅读有关简单 GPIO 寄存器的用户手册。下面是 LED 发光码、您能否查看它并告诉我我我的理解是否正确。 我正在 Code Composer Studio 上进行开发。

代码:
//将方向设置为输出
   GPIO->DIR = 0x01;
//DEN 寄存器-数字使能寄存器
   GPIO->DEN = 0x01;
//GPIO 数据寄存器
   GPIOM->数据= 0x01;

我的疑问是、
MSP432E401Y 简单链接示例代码可在  Resource Explorer 或 TI 论坛中找到-我可以重复使用这些代码吗?我是说,我可以根据需要更改 GPIO 引脚吗? 因为我开发了定制板。

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

    "一. MSP432E401Y 简单链接示例代码可在  Resource Explorer 或 TI 论坛中找到-我可以重复使用这些代码吗?我是说,我可以根据需要更改 GPIO 引脚吗?"

    当然可以。 您为什么会期望其他结果?

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

    感谢 Andy、
    我认为示例代码仅适用于 LaunchPad。

    我的 GPIO 代码是否正确?

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

    您的代码是否正确? 我不知道、您只发布了三行内容、没有 有用 的评论或解释。 没有人能告诉您的 LED 连接了哪个端口、或者 LED 是如何连接的。 启用 GPIO 外设、设置时钟等也是一个小问题。

    我使用 TivaWare 代码、该代码将直接寄存器访问抽象为人类可理解的函数。  

    示例仅适用于 LaunchPad、因为 LaunchPad 使用特定的引脚和外设。 如果您的设计使用不同的引脚和外设、则可以修改示例以使用它们。 如果您的设计使用具有相同引脚的相同外设组合、则示例应起作用。 这些示例旨在作为起点并演示各种功能。 在设计产品时、您可能会选择不同的外设和引脚组合。

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

    感谢 Andy 的详细回答。
     我重写代码并将在这里发布

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

    尊敬的 Andy:
    我有一个 Tiva TM4C123Gxl Launch Pad

    我已经尝试过 UART 回显示例代码工作正常。 因此、将相同的代码与修改后的 UART 端口以及以下代码中所示的其他代码一起使用。 现在、我使用了 PORTE1、我已将 PORTE1引脚连接到 FTDI 串行通信 RX 引脚、并将 lanuch pad GND 引脚连接到 FTDI GND 引脚。 我已经在内置函数 UARTwrite()中用于发送数据。 并检查了波特率-115200。

    但是我无法在串行终端(Tera Term)上接收数据、这是什么问题?

    无效
    配置 UART (空)

    //
    //启用 UART 使用的 GPIO 外设。
    //
    // map_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
    MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOE);

    //
    //启用 UART0
    //
    // map_SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
    MAP_SysCtlPeripheralEnable (SYSCTL_Periph_UART7);

    //
    //为 UART 模式配置 GPIO 引脚。
    //
    // MAP_GPIOPinConfigure (GPIO_PA0_U0RX);
    // MAP_GPIOPinConfigure (GPIO_PA1_U0TX);
    // map_GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);

    // MAP_GPIOPinConfigure (GPIO_PA0_U0RX);
    MAP_GPIOPinConfigure (GPIO_PE1_U7TX);
    MAP_GPIOPinTypeUART (GPIO_Porte _BASE、GPIO_PIN_1);

    //
    //使用内部16MHz 振荡器作为 UART 时钟源。
    //
    // UARTClockSourceSet (UART0_BASE、UART_CLOCK _PIOSC);
    UARTClockSourceSet (UART7_BASE、UART_CLOCK_PIOSC);

    //
    //初始化控制台 I/O 的 UART
    //
    UARTStdioConfig (0、115200、16000000);

     UARTwrite ("d\n\r\n"1);//内置函数  


    //
    //
    //打印"Hello World!" 连接到评估板上的 UART。
    //
    //
    内部
    main (空)

    //volatile uint32_t ui32Loop;

    //
    //为中断处理程序启用怠惰堆栈。 这允许使用浮点
    //在中断处理程序中使用的指令,但代价是
    //额外的堆栈用法。
    //
    MAP_FULazyStackingEnable();

    //
    //将时钟设置为直接从晶体运行。
    //
    MAP_SysCtlClockSet (SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHz |
    SYSCTL_OSC_MAIN);

    //
    //启用用于板载 LED 的 GPIO 端口。
    //
    MAP_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOF);

    //
    //为 LED 启用 GPIO 引脚(PF2 & PF3)。
    //
    MAP_GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、GPIO_PIN_2);

    //
    //初始化 UART。
    //
    ConfigureUART();

    //UARTCharPutNonBlocking (UART7_BASE、"Byte");

    //
    //我们已完成。 四处闲逛、什么也不做。
    //
    while (1)

    //
    //打开蓝色 LED。
    //
    GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、GPIO_PIN_2);

    //
    //延迟一位。
    //
    SysCtlDelay (SysCtlClockGet ()/ 10 / 3);

    //
    //关闭蓝色 LED。
    //
    GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_2、0);

    //
    //延迟一位。
    //
    SysCtlDelay (SysCtlClockGet ()/ 10 / 3);

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

    FTDI 芯片是否配置正确、但这必须完成?  

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

    UARTStdioConfig (0、115200、16000000);

    UARTStdioConfig 副本中的第一个参数是 UART 编号。 您似乎正在尝试使用 UART7、因此应该是7而不是0。 我的函数(g_ui32UARTPeriph[])副本只能识别 UART0-2、因此您可能应该检查该表。

    --------

    您使用的是 MSP432E401Y 还是 TM4C123G? 在 MSP432E401Y 上、UART7位于 PC4-5上、而不是 PE1-?。 [参考数据表(SLASEN5)表4-4]。

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

    我正在使用 TM4、因此引脚编号是正确的 PE1

    如果我选择任何 UART (0-2)应该起作用吗? 哪一个表引用了 UART?  

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

    检查在  UARTstdio.c 开头处的 arraaty g_ui32UARTPeriph[]、并查看它有多少个条目。 从 MSP432E401Y enet_wi_lwip 示例中,我的副本只有3个条目。

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

    非常感谢 Bruce、他终于成功了-我已经更改了条目  

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

    是否有用于从  TI 生成外设初始化的工具? 与 STM32控制器类似、STM32CUBEMX 是生成外设初始化的工具。

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

    您好 Srinivas、

    您可以参阅 SysConfig 工具:https://www.ti.com/tool/SYSCONFIG?keyMatch=SYSCONFIG%20TOOL&tisearch=search-everything

    它已经集成在 CCS 中。

    伊斯天

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

    非常感谢您的伊斯天、我已经从上面的链接下载了工具。 我们是否需要保存我们选择的每个文件,或者是否有任何直接导入的方法?

    但我在 CCS 工具中找不到 -在哪里可以找到它?

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

    有关 SysConfig 的使用、请参阅:software-dl.ti.com/.../Users_Guide.html

    我认为您可以直接导入 TI-Driver 示例代码。 然后、您将在 CCS.dev.ti.com/.../node 中看到它 、但在我检查时、示例代码都是 RTOS。