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/MSP432P401R:MSP432项目、通过 GSM 与手机共享 GPS 位置。

Guru**** 2595805 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/646976/ccs-msp432p401r-msp432-project-to-share-gps-location-with-gsm-to-a-cell-phone

器件型号:MSP432P401R

工具/软件:Code Composer Studio

大家好、

我正在进行一个基于 MSP432的项目、在这个项目中、我必须通过 SMS 格式的 GSM 与手机共享当前位置、任何人能帮助我使用良好的源代码框架来实现这一目标吗、我对这个平台非常陌生。

我正在使用 MSP432P401R Launchpad 和 M95 Quectel GSM 和 MAX-7C GPS Ublox。

谢谢、

插孔  

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

    插孔、

    对于 MSP432和 GSM 上的通用起始材料、我建议使用以下 E2E 主题:

    1.   我们的一名 TI 实习生在 Hackster I/O 上实施的出色 GPS 和 GSM 项目是一个很好的起点。
    2. E2E GSM 接口- (参考使用 Temboo 软件和用于 GSM 的 Adafruit FONA 模块)

     有关特定 GSM/GPS 设备的信息和驱动程序、请参阅制造商的主页、了解从这些特定 GPS 设备读取并通过 GSM 传输此信息所需命令的语法和结构。

     1.对于 M95 Quectel 器件、 MQTT 上有一个好的 AppNote 、可以作为驱动此器件的良好起点。 您需要在他们的网站上注册才能下载。

     2.对于 GPS Ublox 器件、经过简单搜索后、我只能在其文档链接和客户支持论坛中找到用于连接此芯片的 Windows 级驱动程序。 您可以继续 ping 他们的论坛、以获取有关如何从 MCU 向该器件发送命令的 UART 级详细信息。  

    祝您的项目顺利-它听起来像是一个有趣的应用

    此致、

     Bob L.

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

    感谢您重放宝贵的内容。

    我正在尝试从模块中看到 AT 响应(从模块接收到 OK 时指示灯亮起),但我没有得到该响应,代码如下所示,请就此帮助我。


    /* DriverLib 包括*/
    #include "driverlib.h"

    /*标准包括*/
    #include

    #include

    volatile uint8_t TXData[]={'a'、't'、'\r\n'};
    volatile uint8_t RXData[]={};



    /* UART 配置参数。 这些是的配置参数
    *使 eUSCI 成为 UART 模块以115200波特率运行。 这些
    *值是使用 TI 提供的在线计算器计算得出的
    *在:
    * software-dl.ti.com/.../index.html
    *
    const eUSCI_UART_Config uartConfig =

    EUSCI_A_UART_CLOCKSOURCE_SMCLK、 // SMCLK 时钟源
    78、 // BRDIV = 78
    2、 // UCxBRF = 2
    0、 // UCxBRS = 0
    EUSCI_A_UART_NO_奇 偶校验、 //无奇偶校验
    EUSCI_A_UART_LSB_FIRST、 // LSB 优先
    EUSCI_A_UART_One_stop_bit、 //一个停止位
    EUSCI_A_UART_MODE、 // UART 模式
    EUSCI_A_UART_oversampling_BAUDRATE_generation //过采样
    };

    int main (空)

    /*停止 WDT */
    MAP_WDT_A_HOLDTimer();


    /*将端口3的引脚2和3设置为主要模块功能(UART)*/
    MAP_GPIO_setPeripheralModuleFunctionInputPin (GPIO_PORT_P3、
    GPIO_PIN2 | GPIO_PIN3、GPIO_PRIMARY_MODULE_FUNCTION);
    //和 P1.0作为输出(LED)*/
    MAP_GPIO_setAsOutputPin (GPIO_PORT_P1、GPIO_PIN0);
    MAP_GPIO_setOutputLowOnPin (GPIO_PORT_P1、GPIO_PIN0);

    /*将 DCO 设置为24MHz (升级 Vcore)*/
    FlashCtl_setWaitState (FLASH_BANK0、2);
    FlashCtl_setWaitState (FLASH_BANK1、2);
    MAP_PCM_setCoreVoltageLevel (PCM_VCORE1);

    CS_setDCOCenteredFrequency (CS_DCO_FREQUENCY 12);

    /*配置 UART 模块*/
    MAP_UART_initModule (EUSCI_A2_base、uartConfig);

    /*启用 UART 模块*/
    MAP_UART_enableModule (EUSCI_A2_base);




    /*启用中断*/
    MAP_UART_enableInterrupt (EUSCI_A2_base、EUSCI_A_UART_receive_interrupt);
    MAP_Interrupt_enableInterrupt (INT_EUSCIA2);


    MAP_Interrupt_enableSlepOnIsrExit();


    while (1)





    MAP_UART_transmitData (EUSCI_A2_base、TXData[0]);
    MAP_UART_transmitData (EUSCI_A2_base、TXData[1]);
    MAP_UART_transmitData (EUSCI_A2_base、TXData[2]);


    MAP_Interrupt_enableSlepOnIsrExit();
    MAP_PCM_gotoLPM0InterruptSafe ();




    /* EUSCI A2 UART ISR */
    空 EUSCIA2_IRQHandler (空)

    uint32_t status = MAP_UART_getEnabledInterruptStatus (EUSCI_A2_base);

    MAP_UART_clearInterruptFlag (EUSCI_A2_base、status);

    IF (STATUS 和 EUSCI_A_UART_receive_interrupt_FLAG)



    RXData[0]= MAP_UART_receiveData (EUSCI_A2_base);
    RXData[1]= MAP_UART_receiveData (EUSCI_A2_base);



    if (RXData[0]='O'& RXData[1]='K') //检查确定响应

    MAP_GPIO_setOutputHighOnPin (GPIO_PORT_P1、GPIO_PIN0);//如果确定、则恢复 LED1



    MAP_Interrupt_disableSlepOnIsrExit();