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.

[参考译文] 2 Tiva 之间的 UART 传输

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/573317/uart-transmission-between-2-tiva

大家好、我需要知道是否可以使用1个 Tiva 作为我的发送器、使用另一个 Tiva 作为接收器。 这里有一些代码示例? 发送器示例和接收器示例。

我使用的是 TM4C123G。

谢谢

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

    João μ A、
    是的、这是完全可能的。
    您可以将 Tiva 的8个 UART 中的每一个连接到8个不同的目标、没问题。
    只需使用 TivaWare UART 示例即可了解如何发送和接收字节。 然后、创建您自己的规则来确定"字节的含义"。
    我们有几个速率为921600 bps 的成功传输案例、如果您的电力连接足够好、您可能会在没有错误的情况下将其加倍。
    Saudações μ A
    布鲁诺

    PS:您只能使用一个 Launchpad 测试软件:"回送模式"会发送回同一个 UART 端口-但最好添加两条连接不同 Tx 和 Rx 的电缆、以便可以让 UART1与 UART2通信。

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

    请在 TivaWare 2.1.3.156中浏览以下代码

    D:\ti\TivaWare_C_Series-2.1.3.156\examples\peripheral\uart_loopback.c

    您可以使用相同的配置 UART 和它们之间的发送/接收。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好。 我得到的频率为93Kbps、绑定速率为921600。 我如何才能更快速地发送字节?

    使用 TM4C123G、我的代码:  

    //
    //变量
    //
    //*********
    uint32_t count_buffer;
    char TX_buffer[]={0xFF};
    
    //*********
    //
    //逐字节发送
    //
    //*********
    
    void Send_Data (void){
    
    /*---------------------------------------------- ///
    
    GPIOPinWrite 上的 LED (GPIO_PORTF_BASE、GPIO_PIN_1、GPIO_PIN_1);
    /*-------------------------------- //
    
    UARTCharPutNonBlocking (UART1_base、TX_buffer[0]);
    //UARTCharPutNonBlocking (UART1_base、TX_buffer[1]);
    UARTCharPutNonBlocking (UART1_base、 "\n");/*-------
    
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ///
    
    LED 关闭
    GPIOPinWrite (GPIO_PORTF_BASE、GPIO_PIN_1、~GPIO_PIN_1);
    
    /*-------------------------------- //
    
    }
    
    
    int main (void){
    
    //
    ////将计时设置为直接从晶体运行。
    //
    
    SysCtlClockSet (SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_MAIN |
    SYSCTL_XTAL_16MHz);
    
    //配置 FPU -怠惰堆栈
    FPULazyStackingEnable ();
    
    //启用 FPU
    FPUCTL (SysCtl_Periptl)
    
    
    
    
    
    
    ;SysCTL (SysTCL_SYSCB_Enable)
    
    
    //将 GPIO F1、F2和 F3设置为输出引脚。
    GPIOPinTypeGPIOOutput (GPIO_PORTF_BASE、
    GPIO_PIN_2 | GPIO_PIN_1 | GPIO_PIN_3);
    
    //
    将 GPIO B0和 B1设置为 UART 引脚。
    //
    
    GPIOPinConfigure (GPIO_PB1_U1TX);
    GPIOPinTypeUART (GPIO_PORTB_BASE、GPIO_PIN_0 | GPIO_PIN_1);
    
    //
    将 UART 配置为921.600、8-N-1操作。
    //
    
    UARTConfigSetExpClk (UART1_base、SysCtlClockGet ()、921600、
    (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE |
    UART_CONFIG_PAR_NONE);// Isso da UMA frequisencia de aprox 93Kbps
    
    //启用 UART1 FIFO 缓冲
    器 UART1_OFF
    
    
    
    
    (UART1_BO1);//启用 UART1_INSTUART1_BASE
    
    
    
    
    
    
    
    (UART1);//启用 UART1_GPIO_1 (UART1);// UART1_IN/2 (UART1_OFF)(UART1);// GPIO_IN/2 (UART1);// GPIO_PIN_INSIMP_INSIMP_INSIMP_OFF)
    ;0 (UART1 (UART1)(UART1);// GPIO_BASE
    
    

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

    您如何测量频率? UART 是一种异步总线、因此频率概念不会保留。