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.

[参考译文] TM4C1294NCPDT:TM4C1294NCPDT

Guru**** 2604225 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1353851/tm4c1294ncpdt-tm4c1294ncpdt

器件型号:TM4C1294NCPDT

您好!

在我的一个项目中、我将尝试使用 TM4C1294NCPDT 以9位模式与 RS485器件进行通信。  来测试9位模式。  I 配置了2个 UART - UART2和 UART6。   UART2配置为 发送器 、UART6配置 为接收器。  在下面附加代码片段。   

空配置 UARTGal (uint32_t ui32SysClock)
{
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART2);
ROM_GPIOPinConfigure (GPIO_PA6_U2RX);
ROM_GPIOPinConfigure (GPIO_PA7_U2TX);
ROM_GPIOPinTypeUART (GPIO_PORTA_BASE、GPIO_PIN_6 | GPIO_PIN_7);

ROM_UARTConfigSetExpClk (UART2_base、ui32SysClock、19200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE|
uart_config_PAR_NONE));
UARTFIFOEnable (UART2_BASE);
UART9BitAddrSet (UART2_base、0x00、0x00);

UART9BitEnable( UART2_base );

将数据 {0xFF、0x06、0x43、0x04、0x00、 0x00};  


配置 UARTLoopback (uint32_t ui32SysClock)
{
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOP);

ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART6);
ROM_GPIOPinConfigure (GPIO_PP0_U6RX);
ROM_GPIOPinConfigure (GPIO_PP1_U6TX);
ROM_GPIOPinTypeUART (GPIO_PORTP_BASE、GPIO_PIN_0 | GPIO_PIN_1);

ROM_UARTConfigSetExpClk (UART6_BASE、ui32SysClock、19200、
(UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE|
uart_config_PAR_NONE));
UARTFIFOEnable (UART6_BASE);
UART9BitAddrSet (UART6_BASE、0xFF、0xFF);

UART9BitEnable ( UART6_BASE );

以下代码接收这些字节并将其发送到将在超级终端上显示的 UART0

if (ROM_UARTCharsAvail (UART6_BASE))
{
recvdata=ROM_UARTCharGetNonBlocking (UART6_BASE);
recvdatat= recvdata;
ROM_UARTCharPutNonBlocking (UART0_BASE、recvdata);

如果以8位模式进行接收、我就能够接收数据。  在9位模式下、不接收数据。   

请您提供帮助。

此致、

拉梅什

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

    您好

    抱歉、 我目前是 OOO、互联网访问受限、直至下周二。 我的答复可能会有延误。 同时、请在 e2e 存档中搜索可能与您的问题相关的任何帖子。

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

    您好!

     我在您的代码中没有看到以9位模式发送地址字节。  

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

    尊敬的 Charles:

    我在代码的另一部分中发送9位地址。

    void TransmitPktrrtaskGal (void)
    {
    uint32_t 长度;
    uint8_t xtb;
    if (PktLengthgalxy!=0)//CommStateB
    {
    if (CommStategalxy == Ready2Xmit)
    {
    pllength=PktLengthgalxy;
    如果(plrength!=0)
    {
    UART9BitAddrSend (UART2_base、* XmitPktArrayPtrgalxy);//(msgLength+30)
    ROM_UARTCharPutNonBlocking (UART0_BASE、* XmitPktArrayPtrgalxy);
    XmitPktArrayPtrgalxy++;
    长度--;
    Pktcountgalxy++;
    CommStategalxy = XmitInProg;
    // ROM_UARTCharPutNonBlocking (UART0_BASE、0x41);



    否则为((CommStategalxy == XmitInProg))
    {

    //在此处发送数据字节

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

    您好!

     我自己不熟悉9bit 模式、浏览 e2e 存档、我也找不到有用的相关帖子。 你在总线上看到地址字节了吗?

      

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

    是的、我们在示波器中看到该地址字节。

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

    您好!

     您是否有显示地址流和数据字节流的逻辑分析仪捕捉? 您是否可以确认地址字节中的第9位等于1?   第9位指示前面的8位应解释为"地址"还是"数据"。 如果第9位是"1"、则前面的 8位应解释为"地址"字节。 如果第9位是"0"、则前面的 8位应解释为"数据"字节。