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/EK-TM4C123GXL:EK-TM4C123GXL-UART

Guru**** 2469520 points
Other Parts Discussed in Thread: EK-TM4C123GXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/676979/ccs-ek-tm4c123gxl-ek-tm4c123gxl-uart

器件型号:EK-TM4C123GXL
主题中讨论的其他器件: BOOSTXL-RS232

工具/软件:Code Composer Studio

大家好,我正在尝试使用以下代码通过 UART 从 PC 更新变量, 但使用 UARTgetc()我只能得到单个字符(即如果我发送13,我只能接收3个字符),不管怎样,我都能得到完整数字。

另一个问题是我正在接收字符、但我需要整数。

#define TM4C123GH6PM
#include 
#include 
















include "inc/hw_gpio.h"#include "void/hw_types.h"#include "inc/hw_memmap.h"#include "driverlib/sysctL.h"#include "driverlib/rom_map.h"#include "driverlib/spin_map.h"#include "driverlib#driverlib/snec.h"#include "driverlib#driverlib_sym.dl"#include "driverlib#driverlib#driverlib.dl.inc"#driverlib#include "driverlib_sym.hr.inc"#include "driverlib#include "driverlib_sym.dl.inc"






SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinConfigure (GPIO_PA0_U0RX);
GPIOPinConfigure (GPIO_PA1_U0TX);
GPIOPinTypeUART (GPIO_PORta_base、GPIO_PIN_0 | GPIO_PIN_1);
UARTClockSourceSet (UART0_BASE、UART_CLOCK_PIOSC);
UARTFlowControlSet (UART0_BASE、 UART_FlowControl_NONE);//设置 UART 流控制-无
IntMasterEnable ();//启用处理器中断
IntEnable (INT_UART0);//启用 UART 中断
UARTStdioConfig (0、115200、16000000);

while (1)//let 中断处理程序执行 UART 回显函数
{
if (UARTCharsAvail (UART0) base)
{
y=UARTgetc();

}
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您是否有机会尝试使用 TivaWare UART_echo 示例? 在示例中、接收到的 char 将触发接收到的中断、然后在 ISR 中、接收到的 char 会回传到终端。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、它只逐个读取字符、然后将其打印回、但我需要读取整数而不是单个数字(字符)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您创建两个"唯一标记字符"(一个在您的"整数"之前发送、另一个在其终止时发送)不会带来简单的"解决方案"结果?  

    为了说明:  #98765* 当通过 UART 或  (SPI/I2C/CAN 等)发送"Char by Char"时 ,应该可以轻松 地将其重构为98765。   ( 您必须确保"#"是"编码"-如果您想使用它 -"在"信号角色"之外"。  

    然后、"接收端"将被充电、并进行所需的处理-以"重新创建"您的原始"整数"。

    在加号侧-这应该能够适应(几乎)任何大小/长度、"整 数(甚至小数)"。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它可能起作用、但接收到的所有字符都将存储在不同的变量中、因此我如何使用它们来"重新创建"原始"整数"。
    还有任何其他方法可以从 PC 向控制器发送数据。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    什么... "可能起作用?"   (你可能不想任命你自己——(两者)法官和陪审团!)   20多年以来,我自己成功地采用了“快速/脏”方法 ...  和(很多!)

    您是否(现在)没有表现出"级联新问题"的倾向-而您的原始问题已得到解决?

    我愿意"进一步帮助"、但您必须展示(部分)深思熟虑的努力、以进行"重新创建原始(整数)"所需的处理。

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

    [引用 user="Awais Mughal"]是否有任何其他方法可以从 PC 向控制器发送数据。

    我假设您使用的是 EK-TM4C123GXL 板、在这种情况下、UART0函数使用 ICDI 接口将数据传输到您的 PC。 我相信 UART 会成为 launchpad 上第二个微控制器上的 USB。

    您可以根据需要使用 USB 接口。 在资源浏览器中、项目"USB 串行设备"执行此操作。

    要将串行 UART 真正用于 PC、您必须使用某些 RS-485或 RS-232芯片:www.ti.com/.../boostxl-rs232

    您还可以通过以太网将数据发送到微型计算机、但这需要做的工作要多得多。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我说"可能会起作用"是因为我正在尝试应用它、但我还没有成功使它起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    的确、您的"解决方案"已经"刚刚到达"、并且(是否)需要您自己的一些"专注时间和思考"。

    新到的海报"没有任何光照"您的"数据重建目标"。   建议您将"激光聚焦"放在"真正的目标" 上(数据传输方法不是您的问题!)

    在您展示(真实)努力后-(进一步)帮助"将会"。   (某些盈利活动可能会介入、但会获得帮助...) ... 可以这么做!   (Mercî Δ t pour la resolution)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的想法是一样的、但模糊的目标对于学生来说更有意义。 这个论坛在欠大学时代将是非常有价值的。 学术界并不总是跟上潮流。

    学生/专业帐户标签可能会有所帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    P.B.:"学生/专业帐户标签可能会有所帮助。"
    大家都同意--这里有几个--长期以来提出了这样的建议。   (这将被(供应商)考虑-在  解决"R9/R10鼠疫-抗议者"之后...)

    为什么"保持"-当"相同的旧版本"(DRM 任何人)可被无休止地重复使用 (努力-精简版-不是?) -即使-特别是--“效率低下的强烈气味” 会通过课堂?

    您很聪明-您是否可以在他的"总结他的串行数据"工作中帮助此海报?   (过去的帖子顺序描述得很好、详细信息也很详细...)   我必须退出(销售)一段时间...  (这样员工就可以在" 禁止"的发光中"呼吸"。)