请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:TMS570LC4357 “线程:HALCOGEN”中讨论的其它部件
在 TMS570LC43xx 的 HALCoGen 示例中,通过 SCI 传输数据时,先验证繁忙状态,然后通过科学发送字节函数传输字节。 以下是从示例中获取的代码:
- 同时(((UART -> FLR & 0x4)=4);/*等待忙*/
- 科学发送字节(UART,*文本++); /*发送文本 */
我有三个与此相关的问题:
- 而((UART->FLR & 0x4)=4)行检查 SCI 标志寄存器(SCIFLR)的状态。 由于寄存器逻辑上是用0x4进行 AND 运算的,因此它应该从32位寄存器中检查第3位。 现在看一下寄存器,第三位是“空闲”,用于检查 SCI 接收器是否处于空闲状态。 我在这里的问题是,为什么我们需要在从 SCI 传输数据时检查接收器状态? 此外,该注释显示为“等待直到忙”。 从寄存器配置来看,总线占线标志是第4个,因此,如果这是为了检查,我们是否应该用0x8逻辑上不会这样做?
- 我们是否应该检查“总线繁忙”标志或“总线繁忙”标志以及“Txbuf 空”标志?
- 我们可以使用 UINT32科学研究(科学研究* 科学)还是 UINT32科学研究(科学研究*科学)或 UINT32科学研究( 科学研究* 科学研究),而不是在((UART ->消除和0x4)=4时编写;