在寄存器UARTx_BAUD里面的DIV_16_EN位的描述是这样的:
除 16 使能
BRD = 波特率除数,波特率公式为:Baud Rate = UART_CLK/ [16 * (BRD + 1)];
1 = 波特率计算公式为 UART_CLK / [16 * (BRD+1)]
0 = 波特率计算公式为 UART_CLK / [ (BRD+1)]
注:当处于 IrDA 模式时,该位必须被设置为 0.
但是在规格书内的IrDA功能描述却是这样的:
IrDA 功能模式:
UART 支持 IrDA SIR (串行红外) 发送编码器和接收解码器,IrDA 模式可通过设定
UART_FUN_SEL 寄存器中的 FUN_SEL 位来选择,当 UART 控制器工作在 IrDA 模式时,必须通
过设定 UART_TRSR[RFITL] = 0 来把接收 FIFO 触发阈值设置为 1。
IrDA 模式下,UART_BAUD[DIV_16_EN] 位必须被使能。
Baud Rate = Clock / (16 * (BRD + 1)),其中 BRD 是在波特率分频寄存器 UART_BAUD 中定义的
波特率除数。.
5.19.1.4 IrDA 功能模式:
UART 控制器提供串行 IrDA (SIR,串行红外) 功能 (用户必须设置 UA_FUN_SEL 来选择 IrDA 功能)。SIR 定义一种短距离红外异步串行传输模式,该模式有 1 个起始位,8 个数据位和 1 个停止位。最大数据速率为 115.2 Kbps (半双工)。IrDA SIR 模块包括 IrDA SIR 协议编码/解码器。IrDA SIR 协议是一个半双工协议,所以不能同时发送和接收数据。IrDA SIR 物理层规定在发送和接收之间至少有 10ms 传输延时,当 UART 控制器工作在 IrDA 模式时,UART_BAUD 设定值必须被设定为模式 1 (UART_BAUD[DIV_16_EN] = 1)。
请问各位大神帮忙分析,新唐官方人员帮忙解释解释,我如果实际工作在IrDA模式时,我的DIV_16_EN位到底是置0还是置1? |