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.

[参考译文] TM4C123GH6PM:GSM 接口

Guru**** 2330840 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/588792/tm4c123gh6pm-gsm-interface

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

大家好、有没有人可以指导我将 GSM 模块与 TM4C123GH6PM 连接。 到目前为止、我还不知道如何连接它们、以及如何使用 TM4C 的 UART 应用 AT 命令

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您需要查看特定的 GSM 模块。 大多数 GSM 模块连接到异步串行接口(UART)、但请确保您具有正确的电平。 (TTL 兼容或 RS232)您还需要了解 GSM 模块使用的波特率。 我建议您从 EK-TM4C123GXL Launch Pad 等开发板开始。 学习构建和调试一个使用 UART 的简单程序、如"Hello World"优先。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能不能向我发送一些将 GSM 与 TM4C123链接在一起的代码、以便我更广泛地了解它们的接口。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您希望使用哪种 GSM 模块?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将使用 SIM900
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    艾哈迈德
    首先、您需要了解更精确的模块定义... 我发现 SIM900可以指 SMD 模块本身、也可以指包含电源、串行端口连接器和其他相关电路的组装电路板。
    此外、对于看起来以业余爱好为导向的产品、请非常小心。 他们遇到了极端情况、例如在其中一个产品页面上使用这些线条:
    *电源:+5V
    *电源电压范围:3.1-4.8V
    如何使用此类冲突信息进行设计?
    现在、您的问题更多:该模块通过 UART 在 TTL 级别进行通信、 实际上、您需要将其连接到 TM4C 的 UART 端口-前提是电压保持在可接受的范围内(幸运的是、TM4C123x 在大多数引脚上需要5V 电压、如果稍后再连接到 TM4C129x、请小心)。
    至于发送命令、您只需将预定义的 AT 字符串从串口发送出去。 作为一个常用的模块、可能有一些开放库可以"方便"作业、因为已经为更典型的命令创建了字符串。 如果这是一项练习、您可以通过查找模块上的文档并了解每个函数使用的字符串(串行字节命令)来创建自己的库。
    为此、您需要首先学习如何在串行端口上发送和接收一个字节。 在 Tivaware 库中查找 UART 示例。
    此致
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好,Ahmad。 您肯定需要一个单独的 PSU 4V/2A 来为 SIM900/800模块供电。 请勿从 Tiva 模块获取电源。 您还需要将 SIM900的"接地"连接到模块的"接地"以及 Tx/Rx 信号/引脚。 您还需要将 SIM900模块上的跳线设置为 TTL/3.3V - 4V 位置。 不是 RS-232、否则您将炸薯条 TM4C。 完成所有这些操作后、只需在 IDE 的控制台上键入 at+命令、代码需要将其流式传输到连接到 SIM900模块串行端口的 TM4C 串行端口。 如果您从模块中获得"确定"作为回复、则表示您正在处理业务。 其余部分是单独的章节、在您成功完成之前非常重要的步骤后、其余部分将易于遵循。
    John

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

    我正在尝试使用此代码将 GSM 与 TM4C123GH6PM 连接、但 GSM 没有通过 OK 确认进行响应。 请您指出我的错误吗?


    <Tm4C123GH6PM.H>
    void PLL_Init (void);
    void UART2_Init (void);
    空 UartWrite (char*pstr);
    unsigned char receiver (void);
    void transmitter (unsigned char data);
    int main (void){
    unsigned char 命令;
    PLL_Init();
    UART2_Init();
    UartWrite ("此程序写入");
    UartWrite ("at");

    void UART2_Init (void){
    sysctl->RCGCUART|=0x00000004;
    sysctl->RCGCGPIO|=0X00000008;
    UART2->CTL&&~0x00000002;
    UART2->IBRD=43;//---设置波特率115200
    UART2->FBRD=26;
    UART2->LCRH=0X00000070;
    UART2->CTL|=0x00000002;
    GPIOD->AFSEL|=0XC0;  
    GPIOD->DEN|=0XC0;
    GPIOD->PCTL=(GPIO->PCTL&0XFFFFFF00)+0X0000000C0;
    GPIOD->AMSEL&&~0XC0;
    GPIOD->DIR |=0x80;

    void PLL_Init (void){
    sysctl->RCC2|=0x8000000;
    sysctl->RCC2|=0X00000800;
    sysctl->RCC2 =(sysctl->RCC2 &~0X000007C0)+0X00000540;
    sysctl->RCC2&=~0X80000070;
    sysctl->RCC2&=~0X80002000;
    sysctl->RCC2|=0X40000000;
    sysctl->RCC2 =(sysctl->RCC2 &~0X1FC00000)+(4<<22);
    while ((sysctl->RIS&0X00000040)==0){};
    sysctl->RCC2&=~0X00000800;

    空 UartWrite (char*pstr){
    while (*pstr!=0){
    发射器(*pstr++);
    }
    unsigned char receiver (void){
    while ((UART1->FR&0x01)!=0){};
    返回 UART1->DR&0xFF;

    void transmitter (unsigned char data){
    while ((UART1->FR&0x20)!=0){};
    UART1->DR=DATA;

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

    您好、Ahmad、

    通过将 SIM 卡插入 移动电话检查其是否有效/有效、然后查看手机是否显示"找到网络"或类似内容。 同时确保您的 SIM 卡不需要 PIN。 如果确实如此、请从电话的菜单中删除它。 在将其再次插入模块后、它应该可以正常工作。 如果仍为"defends"、则输入命令 AT+cops=0。

    我还注意到、在您的代码中、当您初始化 UART2 (我没有检查地址)时、您正在使用 UART1。 在检查 SIM 卡之前、请检查您的问题是否是由于此"可能的错误类型"造成的。

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Ahmad、
    您正在以艰难的方式执行代码。 我强烈建议您使用 TivaWare 库中的函数进行初始化以及 UART 发送和接收。 正如我之前建议的那样、请查看 TivaWare 中的示例代码、例如"C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c123gxl\hello"。