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.

[参考译文] 启用 UART1 Tiva-C 时出现问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/588123/problem-with-enable-uart1-tiva-c

主题中讨论的其他器件:TM4C123GH6PM

您好!

我需要使用 UART1将 AT 命令发送到 Sim800A 模块、但它不起作用。 我知道这是因为我没有收到来自 sim 模块的消息。 我需要您的帮助、我必须在本周结束时完成该项目。 情况紧急。 这是我的代码:

#include
#include
#include
#include "inc/tm4c123gh6m.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "driverlib/uart.h"
#include "utils/uartstdio.h"

void delay_ms (int t)

SysCtlDelay (SysCtlClockGet ()/(3*1000/t));

void sendStr (char *str)

while (* str)

UARTCharPut (UART1_base、* str);
STR++;

int main (空)

SysCtlClockSet (SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHz);
SysCtlPeripheralEnable (SYSCTL_Periph_UART1);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
GPIOPinConfigure (GPIO_PCTL_PB0_U1RX);
GPIOPinConfigure (GPIO_PCTL_PB1_U1TX);
GPIOPinTypeUART (GPIO_PORTB_BASE、GPIO_PIN_0 | GPIO_PIN_1);
UARTConfigSetExpClk (UART1_base、SysCtlClockGet ()、9600、(UART_CONFIG_WLEN_8 |UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE));
sendStr ("at\n");
delay_ms (200);
sendStr ("AT+CMGf=1\n");
delay_ms (200);
sendStr ("AT+CMGs="0944353095\"\n");
delay_ms (200);
sendStr ("abcde\n");
delay_ms (200);
UARTCharPutNonBlocking (UART1_base、26);
delay_ms (200);

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

    您在对 GPIOPinCongure()的调用中具有错误的常量。

    GPIOPinConfigure (GPIO_PB0_U1RX);
    GPIOPinConfigure (GPIO_PB1_U1TX);
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答 Bob Crosby,我已经检查了 gpio.h 库,找不到常量"GPIO_PB0_U1RX"或"GPIO_PB1_U1TX"。 它适用于 UART0 (GPIO_PCTL_PA0_U0RX 和 GPIO_PCTL_PA1_U0TX)、但当我更改为 UART1时、它不起作用。 我认为这些常量不是我的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这些定义位于文件"C:\ti\TivaWare_C_Series-2.1.4.178\driverlib\pin_map.h"的第8074行和8077行。 您可能具有错误的包含路径、并且正在挑选不同版本的"pin_map.h"。 我实际上对您进行了更改并运行了代码。 我在示波器上看到了 UART1输出。

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

    一位学员怀疑海报使用的"Project0"、正如刚才描述和很好地说明的(今天在这里) 、网址为:

    e2e.ti.com/.../588037

    本来可以防止他的不幸!   并将启用他的快速/高效校正...

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢 Bob Crosby、它现在起作用了。 我是一个新手、这些图书馆让我感到困惑。 当我在 pin_map.h 中使用常量时、会出现"GPIO_PB0_U1RX 未定义"等错误。 我必须在项目属性中预先定义符号"PART_TM4C123GH6PM"、才能使其正常工作。 我不明白为什么我必须这么做。 我知道、当我使用 TM4C123GH6PM 创建项目时、它已经定义了名称。 可以向我解释一下吗? 总之、再次感谢您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CB1升起、将手枪塞住...很少有人会看不到(盲)...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不确定发生了什么。 当我创建一个新项目(File -> New -> CCS Project)并选择 TM4C123GH6PM 作为目标时、它确实创建了一个预定义符号 PART_TM4C123GH6PM。 然后、我必须为 TivaWare 驱动程序库设置包含路径和库文件、但随后会正确构建。 正如 CB1所建议的、我几乎总是从 TivaWare 示例中导入现有工程、例如"project0"。