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:无法通过UART A0发送单个字符

Guru**** 2536000 points
Other Parts Discussed in Thread: MAX232

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/575425/ccs-msp432p401r-unable-to-send-a-single-character-through-uart-a0

部件号:MSP432P401R
主题中讨论的其他部件: MAX232

工具/软件:Code Composer Studio

您好, 
我正在使用MSP432P401R Launchpad。 我正在学习使用UART驱动程序库。 我已使用RS232串口到USB电缆将Launchpad连接到PC,并尝试在超级终端上连续接收字符
自从我使用UART模块A0以来,我已将Rx和Tx引脚从J101连接到串行到USB连接器的DB9连接器。 下面是我的试用代码,我尝试将字母U从启动板连续发送到Hyperterminal软件。

#include "driverlib.h"
#include <MSP.h>

const eUSI_UART_Config uartConfig =

EUSCI_A_UART_CLOCKSOURCE_SMCLK,// SMCLK时钟源
72,// BRDIV = 78
2,// UCXBRF = 2
0,// UCXBRS = 0
EUSCI_A_UART_NO_PARity,//无奇偶校验
EUSCI_A_UART_LSB_FIRST,// MSB FIRST
EUSCI_A_UART_ONE_STOP_BIT,//一个停止位
EUSCI_A_UART_MODE,// UART模式
EUSCI_A_UART_ORTS_Ooversampling_BAUDRATE_generation // Oversampling
};


内部主(无效)

/*正在停止WDT */
WDT_A_HoldTimer();


/*在UART模式下配置WFP插针1.2 和WFP 1.3。
*它们设置为输入还是输出无关紧要
*/
GPIO _setAsPeripheralModuleFunctionInputPin (GPIO_PORT_P1,
GPIO _PIN1|GPIO _PIN2 | GPIO _PIN3,GPIO主要模块功能);

/*将DCO (时钟)设置为12MHz */
cs_setDCOCenteredFrequency (CS_DCO_Frequency_12);

/*配置UART模块*/
UART_INITModule (EUSCI_A0_BASE,&uartConfig);

/*启用UART模块*/
UART_enableModule (EUSCI_A0_BASE);

同时(1)

/*通过UART发送'g'字符*/
UART_HESRData (EUSCI_A0_BASE,"U");
}
}

我遇到的问题是在超级终端上收到垃圾值。 我尝试过使用不同的字符,数字甚至是无符号整数,但问题是相同的。 尽管启动板设置为9600,但尝试在终端软件上应用9600以外的其它Baudrates。但问题仍然存在。

我还尝试使用调试探头的反向通道UART功能以及CCS中存在的终端应用程序。 在这种情况下,没有收到数据或垃圾值。

任何帮助或建议。

此致,

Amit K

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

    让我们先检查一下健全性。

    1.您使用的是红色Launchpad吗? 它具有最新的MSP432P401R C修订版器件,需要使用最新的示例。
    2.您是否可以使用"开箱即用"示例来建立功能? 您在这里的示例已被修改,这是可以的,但我希望您可以开始使用一组"已知"的硬件+软件。 获取最新示例的最简单方法是使用dev.ti.com -->资源管理器-->软件--> Simplelink MSP42 SDK -->示例-->开发工具--> MSP-EXP--> Driverlib
    选择"UART_PC_ECHO_12MHz_brclk"示例。
    3.您可以将此代码粘贴到桌面CCS中,也可以从云端运行此示例。
    4.将lp连接到PC并使用超级终端软件发送/接收字节。

    此示例已验证为有效。
    如果您可以将其用于您的红色Launchpad,那么我们有一个已知的良好起点,我们可以指导您从那里完成更改。

    此致,
    Priya
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    快速编辑以添加J101 RXD,TXD中的正确跳线选择。 但是,我需要仔细检查它是否连接到启动板的标准UART连接。 让我回到你们这里。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Priya,感谢您的及时回复。 我想告诉大家,我使用的是红色Launchpad,Launchpad UART没有问题,因为我已经测试了UART,发送数据并在终端软件上查看相同的数据。 所有这些都工作正常,UART通信没有问题。

    问题与GSM模块通信有关,可能是通过HTTP发布数据的系统问题。

    任何相关帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很高兴设置工作正常。 我认为,其他部分可能超出了我的专业知识范围。 UART通常是非常直接的外设。
    如果您的硬件工作正常,波特率和时钟选择设置正确,则正确的针脚连接和正确的LP M应该正常工作。

    我在您的代码示例中看到您更改了BRDIV,但没有更改时钟设置。
    您正在尝试使用什么波特率,时钟源?

    -Priya
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,感谢您的帮助。 实际上,我与我提出的另一个论坛问题混淆了。 本论坛提到的问题已经解决。 解决这个问题的办法是我没有在PC和MSP432之间使用MAX232电平转换器。

    抱歉误导,感谢您的所有努力
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没问题! 感谢您与我们一起结束。