您好!
在使用 TM4C 微控制器时、我注意到 UART Rx 函数"UARTCharGet"返回一个指向无符号整数的指针、如下所示:
int(*)(unsigned int)
问题:
如果 UART 返回的数据不能大于一个字节-指向无符号整数(32位)的动机是什么?
为什么不指向类型"int8_t"?
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.
您好!
在使用 TM4C 微控制器时、我注意到 UART Rx 函数"UARTCharGet"返回一个指向无符号整数的指针、如下所示:
int(*)(unsigned int)
问题:
如果 UART 返回的数据不能大于一个字节-指向无符号整数(32位)的动机是什么?
为什么不指向类型"int8_t"?
您对具有非8位输出非常正确、因此适合使用较大的尺寸。 实际上、我认为它应该是 int 或 int16_t typedef、类似于 UART_char。
[引用 user="Bruno Saraiva"]此外,该 API 还具有 ROM_版本,对于该版本,使用较小(可能不对齐)的输出地址将更不推荐使用该版本。
通常是一个问题、但不涉及任何 ARM 架构。
[引用 user="Bruno Saraiva">没有增益尝试优化与硬件寄存器有着内在联系的函数。 [/报价]
不正确、尽管公平地优化生成的代码不会改善。 然而、在错误检测和预防方面有很大的增益、并且作为一项令人惊讶的副作用设计改进。 优化人力资源和发展。 这可能会更加显著。
这是因为、一旦输入的返回值与32位 int 不同、就会应用类型检查、滥用情况很快就会显现出来。 TI 在几乎所有类型的情况下都使用了 int32_t 和 int32_t 指针、因此失去了重大的质量改进机会。
Robert