嗨对话框,
我想创建自己的UART波特率,但不知道如何决定DLF值。数据表指示值=(除数分数值)/(2 ^ dlf_size)。我无法在数据表中找到关于“Divisor分数值”和“DLF_Size”的任何描述。例如,如果我想创建10000波特率(100us),我应该在DLL中填充100,那么DLF值将是什么?谢谢你的帮助。
嗨nigelyang,
请检查一下表42:波特率生成DA14680数据表。作为一个例子,让我展示115200如何生成115200(默认波特率),然后我将向您展示如何生成10000波特率。一般来说,请注意:divider = 16000000/16 /波特速度
用于生成115200波特率,获得分频器:16000000 / 16/115200 = 8,680〜= 8
请转到hw_uart.h标题文件中的hw_uart_baudrate枚举,您将看到
hw_uart_baudrate_115200 = 0x000008.0.B.。定义的值包括3寄存器的值:DLH,DLL,DLF。
关于10000波特率,您将获得16000000 / 16/10000 = 100
因此,在hw_uart_baudrate枚举中,您应该添加以下内容:
hw_uart_baudrate_10000 = 0x0000.64.0.0.。此外,您应该将Config.c文件中的config_retarget_uart_baudrate定义更改为您的自定义波特率hw_uart_baudrate_10000。
谢谢,PM_DIALOG.
嗨nigelyang,
请检查一下表42:波特率生成DA14680数据表。作为一个例子,让我展示115200如何生成115200(默认波特率),然后我将向您展示如何生成10000波特率。一般来说,请注意:divider = 16000000/16 /波特速度
用于生成115200波特率,获得分频器:16000000 / 16/115200 = 8,680〜= 8
请转到hw_uart.h标题文件中的hw_uart_baudrate枚举,您将看到
hw_uart_baudrate_115200 = 0x000008.0.B.。定义的值包括3寄存器的值:DLH,DLL,DLF。
关于10000波特率,您将获得16000000 / 16/10000 = 100
因此,在hw_uart_baudrate枚举中,您应该添加以下内容:
hw_uart_baudrate_10000 = 0x0000.64.0.0.。此外,您应该将Config.c文件中的config_retarget_uart_baudrate定义更改为您的自定义波特率hw_uart_baudrate_10000。
谢谢,PM_DIALOG.