这段简单的C代码如何工作?

时间:2015-09-10 06:05:09

标签: c arduino bitwise-operators arduino-uno usart

我需要在Arduino Uno上使用9位UART数据,所以我必须手动设置Arduino UART。 基本上,我不理解这一行示例代码(来自数据表),它意味着在Arduino上启用UART Tx和Rx引脚,这种引脚以简单易懂的机器语言完成,意味着立即加载值为UCSR0B(USART控制和状态寄存器B),RXE(接收使能)位和TXE(传输使能)位均为高电平。换句话说,将00011000加载到USCR0B

以下是数据表中的示例C代码:

USCR0B = (1 << RXE) | (1 << TXE);

1 个答案:

答案 0 :(得分:12)

ffmpeg -y -i busy1.mp4 -vcodec prores -profile:v 3 -r "29.97" -c:a mp2 busy2.mov RXE是位索引,因此TXE掩码,其中(1<<RXE) | (1<<TXE)TXE位都等于1(所有其他位都是0)。

E.g。我碰巧不知道RXERXE的实际值,但假设TXE是第3位而TXE是第4位,那么相关的头文件定义可能如下所示:

RXE

并且掩码计算将如下所示:

#define TXE 3  // TX Enable = bit 3
#define RXE 4  // RX Enable = bit 4