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.
工具/软件:Code Composer Studio
您好!
我是 Balaji、我不知道如何将存储在变量中的数据(如更新的传感器值)传输到 TM4C123GH6PM 的 UART 模块。
我正在使用 UARTCharPUT() API 发送一个 charecter,但应该使用什么将变量的内容发送到 UART。
unsigned char a=34;
UARTCharPut (UART0_BASE、A);
如果我这么做、 串行监视器上只有4个。
谢谢 Ralph、
如果我使用 UARTprintf、我必须包含所有库。
正如您告诉 UARTCharPUT()将打印 ASCII 字符,但如果我发送78而不是34,它将打印8个 ASCII 字符,而不是78的 ASCII 字符。 请告诉我原因是什么。
您好、Balaji
您需要在项目中包含 uartstdio 文件。
如果您已正确链接 TivaWare (如果使用 TivaWare 示例、肯定会是这种情况)、那么您只需使用以下代码行:
#include "utils/uartstdio.h"
至于78打印为8,我不确定。 UARTCharPut API 仅按原样传输字符、因此会通过该行发送0x78。 您是否检查了终端的波特率是否与 MCU 波特率设置一致?
您好 Ralph、
感觉还不错——我想——“和你一样!” (不是这种情况)-提供了很大的舒适度。) 尽管必须注意- 0x34 (而不是34) 是与 '4'等效的 ASCII。
标准 UARTCharPut ()-正如其"源代码"显示的那样- 仅限于一个字符-并且(第一个'4'(从34个)和以后的'8'(从78个))是 在 UART 的 FIFO 中放置的最后一个字符-因此 '这些' 字符('单独'被发送) 似乎"违反" 先入先出 "(FIFO)操作-不是? (清楚地说、"先入"(3)、然后(7)-看起来 不是 "先出!" ***(除非他们被“改写”,但终端的“捕捉”似乎消除了这种可能性。)
您是否可以(尝试)详细说明(甚至解释)这种(明显) FIFO 矛盾? (LIFO (最后一个输入-第一个输出) 似乎是 (赦免) 更"可行"-在这里...)
[编辑]: 对这一点的思考更多-它看起来(最有可能) 、所呈现变量的'FIFO'处理、处理和/或接受'必须证明'关键'。 进一步复杂化- 这里存在一种"可能性"-是否不存在? 对于变量'A=34'- FIFO (可能)会将其视为、'2个唯一字符'-或 变量的(实际)值! (只要该值为255或更小。) 从 这张海报的(初步)报告中可以看出、这种"多位"变量在 FIFO 中(被视为)为"最低有效位"-首先进入 FIFO -因此"首先退出"。 (可能) 进一步的实验-我之前(另一个线程)请求(一些) FIFO 详细信息(没有得到任何响应)、这使我们产生了(一些)混乱...
如果存在一些方法-输出 FIFO 的内容-(无需添加字符参数-在'UARTCharPut()'内 - 那么(该)可以-显示(缺少)'3'... 或 “7”... 在我们的海报 用例中! 而'API giveth'... 它(有时) 会被带走!
作为公认的"粗制" (然而、对于 Gov't 工作来说很好)(可能)解决方案-并且有人希望 通过 UART 传输"9876"-下面(未经测试):
UARTCharPut (UART0_BASE、"9");
UARTCharPut (UART0_BASE、"8");
UARTCharPut (UART0_BASE、"7");
UARTCharPut (UART0_BASE、'6'); // 假设没有嵌入'CR/LF'-字符从左到右填充屏幕...
我花了很多时间/精力(更早)用'uartstdio' ( UARTvprintf())检查'key function'的代码 - 这是一场噩梦! 即使是函数的作者也会道歉-注意(多个) "去做"、其中...
我建议我们的海报采用"基本数学"-从 "多位数变量"中提取每个(基10)"位置值"-并将这些(现在合适)单个数字字符 呈现给 速度更快、效率更高的'UARTCharPut()'函数。 提示: 正确使用 "divide by ten (十进制幂)"-后跟"%"运算符-可实现"单数字提取-从多位字段"-快速轻松!
这种"基本数学的使用" 证明了(近乎) 通用于 :价值、使用和应用 -也是如此。 (哪一个'uartstdio'不是!) 考虑随附的'LCD'的情况-(也)需要接收"单个字符"、而不是'multi-digit'变量。 "更广泛的数学解决方案"-显然是赢家-因为它的" ACH 和价值"要大得多! 当然、也证明 了"供应商不可知!"