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/MSP430G2553:简单 UART 接收器程序

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/883182/ccs-msp430g2553-simple-uart-receiver-program

器件型号:MSP430G2553

工具/软件:Code Composer Studio

您好、

 我正在寻找一个简单的 UART 接收器程序进行学习。 有人可以帮帮我吗?

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

    我建议您从此处的示例 msp430g2xx3_uscia0_UART_01_115k.c (或类似)开始:

    http://dev.ti.com/tirex/explore/node?node=ALFfIDtjUH-HwRytz.WJPQ__IOGqZri__LATEST

    回波器件位于 ISR 中、在这里可以看到 UCA0TXBUF=UCA0RXBUF。 将其替换为代码以执行所需操作。

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

    您好、  

       感谢你的帮助。 UART 接收数据反复出现、如果只想接收一次而不中断该怎么办?

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

    我不确定我是否理解。 即使您没有键入任何内容、您是否在 PC 上看到数据? 您是否更改了计划中的任何内容?

    如果不想使用中断,可以轮询 main()中的接收数据。  

    1) 1)删除引用 UCA0RXIE 的行

    2)在 main()中插入轮询循环,如下所示:

    while (!(IFG2 & UCA0RXIFG))/* empty*/;//直到 Rx 数据出现
    RxByte = UCA0RXBUF;//捕获 Rx 数据
    

    RX 数据轮询并不常见、因为在大多数应用中、当 Rx 数据到达时、它是不可预测的。

    如果您能告诉我们您的总体目标、我们可以更好地指导您。

    [编辑:固定代码--错误的 MCU。]

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

    您好、

    感谢您的回复。 如何将键盘字母作为中断。 也就是说、当我按下字母"A"时、应该显示"a"一次、然后运行之前运行的主程序。 可以帮我处理代码吗?

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

    我不确定我是否理解您要执行的操作。

    我上面提到的示例(未改变)符合我认为您所描述的内容--您将 USB ("反向通道 UART ")连接到 PC 上的终端仿真器,并且您键入的任何内容都将回传给您。 在字符之间、它运行 main 中的任何代码(现在这不是太多、但你可以添加内容)。这在没有中断的情况下完成相当麻烦。