请参阅 SLAU208Q、 p961:
该文件没有明确明确地说明 UCBUSY 应该做什么;它只是说:
USCI 忙。 该位表示一个发送或接收操作正在进行。
0b = USCI 处于非活动状态
1b = USCI 发送或接收
在论坛主题中 、https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/187077/last-byte-in-uart-communication-msp430、 Jens-Michael Gross 指出:"2274s USCI 模块在 UCA0STAT 中具有 UCBUSY 位。 很清楚芯片目前是在进行下一步发送还是接收。 如果检测到起始位边沿或写入 TXBUF、寄存器会立即置位、并在传输完成时清除。 但是、如果设置了该位、您不知道是因为接收还是发送(在您确实发送了一些内容的情况下)。 UCA0TXIFG 不起作用、因为即使最后一个字节仍在底层、它也已被设置。
Question:
- 在以上评论中,"转让竞争"在转让方面的定义是什么?
- 如果在 TXBUF 变为空后没有新字节被写入、那么 UCBUSY 何时变为零呢? 位之后是什么? 过一段时间之后? 什么是精确计时?
- 如果没有更多的字节被写入 TXBUF、那么可以假定 UCBUSY 再次置位的唯一原因是在 RXD 上检测到一个开始位吗?
- 上面的注释也指出:"如果检测到一个开始位边沿、它立即被置位。" 这让我面临一个问题:如果出现一个传入的毛刺脉冲(即、传入的脉冲短于去毛刺脉冲时间 TT)、是否可以设置 UCBUSY? 如果是、UCBUSY 保持被置位多长时间? 持续时间内发生同样的行为? 过一段时间之后?