00. 目录

文章目录

  • 00. 目录
  • 01. DAC简介
  • 02. DAC主要特性
  • 03. DAC功能说明
  • 04. DAC 双通道转换
  • 05. DAC寄存器
    • 5.1 DAC 控制寄存器 (DAC_CR)
    • 5.2 DAC 软件触发寄存器 (DAC_SWTRIGR)
    • 5.3 DAC 1 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R1)
    • 5.4 DAC 1 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L1)
    • 5.5 DAC 1 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R1)
    • 5.6 DAC 2 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R2)
    • 5.7 DAC 2 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L2)
    • 5.8 DAC 2 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R2)
    • 5.9 双 DAC 12 位右对齐数据保持寄存器 (DAC_DHR12RD)
    • 5.10 双 DAC 12 位左对齐数据保持寄存器 (DAC_DHR12LD)
    • 5.11 双 DAC 8 位右对齐数据保持寄存器 (DAC_DHR8RD)
    • 5.12 DAC 1 通道数据输出寄存器 (DAC_DOR1)
    • 5.13 DAC 2 通道数据输出寄存器 (DAC_DOR2)
    • 5.14 DAC 状态寄存器 (DAC_SR)
  • 06. 附录
  • 07. 声明

01. DAC简介

DAC 模块是 12 位电压输出数模转换器。DAC 可以按 8 位或 12 位模式进行配置,并且可与DMA 控制器配合使用。在 12 位模式下,数据可以采用左对齐或右对齐。DAC 有两个输出通道,每个通道各有一个转换器。在 DAC 双通道模式下,每个通道可以单独进行转换;当两个通道组合在一起同步执行更新操作时,也可以同时进行转换。可通过一个输入参考电压引脚 V REF+ (与 ADC 共享)来提高分辨率。

02. DAC主要特性

● 两个 DAC 转换器:各对应一个输出通道
● 12 位模式下数据采用左对齐或右对齐
● 同步更新功能
● 生成噪声波
● 生成三角波
● DAC 双通道单独或同时转换
● 每个通道都具有 DMA 功能
● DMA 下溢错误检测
● 通过外部触发信号进行转换
● 输入参考电压 V REF+

温馨提示

使能 DAC 通道 x 后,相应 GPIO 引脚( PA4 或 PA5 )将自动连接到模拟转换器输出(DAC_OUTx) 。为了避免寄生电流消耗,应首先将 PA4 或 PA5 引脚配置为模拟模式 (AIN) 。

03. DAC功能说明

DAC 通道使能

将 DAC_CR 寄存器中的相应 ENx 位置 1,即可接通对应 DAC 通道。经过一段启动时间t WAKEUP 后,DAC 通道被真正使能。

DAC 输出缓冲器使能

DAC 集成了两个输出缓冲器,可用来降低输出阻抗并在不增加外部运算放大器的情况下直接驱动外部负载。通过 DAC_CR 寄存器中的相应 BOFFx 位,可使能或禁止各 DAC 通道输出缓冲器。

DAC 数据格式

根据所选配置模式,数据必须按如下方式写入指定寄存器:
● 对于 DAC 单通道 x,有三种可能的方式:
— 8 位右对齐:软件必须将数据加载到 DAC_DHR8Rx [7:0] 位(存储到DHRx[11:4] 位)。
— 12 位左对齐:软件必须将数据加载到 DAC_DHR12Lx [15:4] 位(存储到DHRx[11:0] 位)。
— 12 位右对齐:软件必须将数据加载到 DAC_DHR12Rx [11:0] 位(存储到DHRx[11:0] 位)。

DAC 转换

DAC_DORx 无法直接写入,任何数据都必须通过加载 DAC_DHRx 寄存器(写入DAC_DHR8Rx、DAC_DHR12Lx、DAC_DHR12Rx、DAC_DHR8RD、DAC_DHR12LD 或DAC_DHR12LD)才能传输到 DAC 通道 x。

如果未选择硬件触发(DAC_CR 寄存器中的 TENx 位复位),那么经过一个 APB1 时钟周期后,DAC_DHRx 寄存器中存储的数据将自动转移到 DAC_DORx 寄存器。但是,如果选择硬件触发(置位 DAC_CR 寄存器中的 TENx 位)且触发条件到来,将在三个 APB1 时钟
周期后进行转移。

当 DAC_DORx 加载了 DAC_DHRx 内容时,模拟输出电压将在一段时间 t SETTLING 后可用,具体时间取决于电源电压和模拟输出负载。

DAC 输出电压

经过线性转换后,数字输入会转换为 0 到 V REF+ 之间的输出电压。各DAC通道引脚的模拟输出电压通过以下公式确定:

DAC 触发选择

如果 TENx 控制位置 1,可通过外部事件(定时计数器、外部中断线)触发转换。TSELx[2:0]控制位将决定通过 8 个可能事件中的哪一个来触发转换,如 表 58 所示。

DMA 请求

每个 DAC 通道都具有 DMA 功能。两个 DMA 通道用于处理 DAC 通道的 DMA 请求。当 DMAENx 位置 1 时,如果发生外部触发(而不是软件触发),则将产生 DAC DMA 请求。DAC_DHRx 寄存器的值随后转移到 DAC_DORx 寄存器。

在双通道模式下,如果两个 DMAENx 位均置 1,则将产生两个 DMA 请求。如果只需要一个DMA 请求,应仅将相应 DMAENx 位置 1。这样,应用程序可以在双通道模式下通过一个DMA 请求和一个特定 DMA 通道来管理两个 DAC 通道。

生成三角波

可以在直流电流或慢变信号上叠加一个小幅三角波。将 WAVEx[1:0] 置为“10”即可选择DAC 生成三角波。振幅通过 DAC_CR 寄存器中的 MAMPx[3:0] 位进行配置。每次发生触发事件后,经过三个 APB1 时钟周期,内部三角波计数器将会递增。在不发生溢出的情况下,该计数器的值将与 DAC_DHRx 寄存器内容相加,所得总和将存储到 DAC_DORx 寄存器中。只要小于 MAMPx[3:0] 位定义的最大振幅,三角波计数器就会一直递增。一旦达到配置的振幅,计数器将递减至零,然后再递增,以此类推。可以通过复位 WAVEx[1:0] 位来将三角波产生功能关闭。

04. DAC 双通道转换

为了在同时需要两个 DAC 通道的应用中有效利用总线带宽,DAC 模块实现了三个双寄存器:DHR8RD、DHR12RD 和 DHR12LD。这样,只需一个寄存器访问即可同时驱动两个 DAC通道。

通过两个 DAC 通道和这三个双寄存器可以实现 11 种转换模式。但如果需要,所有这些转换模式也都可以通过单独的 DHRx 寄存器来实现。下面几段内容将介绍所有这些模式。

独立触发(不产生波形)

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为不同的值,以配置不同的触发源
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
DAC 1 通道触发信号到达时,DHR1 寄存器的内容转移到 DAC_DOR1(三个 APB1 时钟周期之后)。
DAC 2 通道触发信号到达时,DHR2 寄存器的内容转移到 DAC_DOR2(三个 APB1 时钟周期之后)。

独立触发(生成单个 LFSR )

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为不同的值,以配置不同的触发源
● 将两个 DAC 通道的 WAVEx[1:0] 设置为“01”,并在 MAMPx[3:0] 位中配置相同的 LFSR掩码值
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DHR12RD、DHR12LD 或 DHR8RD)DAC 通道 1 触发信号到达时,LFSR1 计数器内容(使用相同的掩码)与 DHR1 寄存器内容相加,所得总和转移到 DAC_DOR1 中(三个 APB1 时钟周期之后)。LFSR1 计数器随即更新。DAC 通道 2 触发信号到达时,LFSR2 计数器内容(使用相同的掩码)与 DHR2 寄存器内容相加,所得总和转移到 DAC_DOR2 中(三个 APB1 时钟周期之后)。LFSR2 计数器随即更新。

独立触发(生成不同 LFSR )

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为不同的值,以配置不同的触发源
● 将两个 DAC 通道的 WAVEx[1:0] 设置为“01”,并在 MAMP1[3:0] 和 MAMP2[3:0] 位中设置不同的 LFSR 掩码值
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
DAC 通道 1 触发信号到达时,LFSR1 计数器内容(使用 MAMP1[3:0] 配置的掩码)与 DHR1寄存器内容相加,所得总和转移到 DAC_DOR1 中(三个 APB1 时钟周期之后)。LFSR1 计数器随即更新。
DAC 通道 2 触发信号到达时,LFSR2 计数器内容(使用 MAMP2[3:0] 配置的掩码)与 DHR2寄存器内容相加,所得总和转移到 DAC_DOR2 中(三个 APB1 时钟周期之后)。LFSR2 计数器随即更新。

独立触发(生成单个三角波)

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为不同的值,以配置不同的触发源

● 将两个 DAC 通道的 WAVEx[1:0] 设置为“1x”,并在 MAMPx[3:0] 位中配置相同的最大振幅值
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
DAC 通道 1 触发信号到达时,DAC 1 通道三角波计数器内容(使用相同的三角波振幅)与DHR1 寄存器内容相加,所得总和转移到 DAC_DOR1 中(三个 APB1 时钟周期之后)。
DAC 1 通道三角波计数器随即更新。
DAC 2 通道触发信号到达时,DAC 2 通道三角波计数器内容(使用相同的三角波振幅)与DHR2 寄存器内容相加,所得总和转移到 DAC_DOR2 中(三个 APB1 时钟周期之后)。
DAC 2 通道三角波计数器随即更新。

独立触发(生成不同三角波)

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为不同的值,以配置不同的触发源
● 将两个 DAC 通道的 WAVEx[1:0] 设置为“1x”,并在 MAMP1[3:0] 和 MAMP2[3:0] 位中设置不同的最大振幅值
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
DAC 1 通道触发信号到达时,DAC 1 通道三角波计数器内容(使用 MAMP1[3:0] 配置的三角波振幅)与 DHR1 寄存器内容相加,所得总和转移到 DAC_DOR1 中(三个 APB1 时钟周期之后)。DAC 1 通道三角波计数器随即更新。
DAC 2 通道触发信号到达时,DAC 2 通道三角波计数器内容(使用 MAMP2[3:0] 配置的三角波振幅)与 DHR2 寄存器内容相加,所得总和转移到 DAC_DOR2 中(三个 APB1 时钟周期之后)。DAC 2 通道三角波计数器随即更新。

同步软件启动

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
在此配置中,DHR1 和 DHR2 寄存器内容会在一个 APB1 时钟周期后分别转移到 DAC_DOR1和 DAC_DOR2 中。

同步触发(不产生波形)

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为相同的值,以便为两个 DAC 通道配置相同的触发源
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
当触发信号到达时,DHR1 和 DHR2 寄存器内容将分别转移到 DAC_DOR1 和 DAC_DOR2中(三个 APB1 时钟周期之后)。

同步触发(生成单个 LFSR )

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为相同的值,以便为两个 DAC 通道配置相同的触发源
● 将两个 DAC 通道的 WAVEx[1:0] 设置为“01”,并在 MAMPx[3:0] 位中配置相同的 LFSR掩码值
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DHR12RD、DHR12LD 或 DHR8RD)触发信号到达时,LFSR1 计数器内容(使用相同的掩码)与 DHR1 寄存器内容相加,所得总和转移到 DAC_DOR1 中(三个 APB1 时钟周期之后)。LFSR1 计数器随即更新。同时,LFSR2 计数器内容(使用相同的掩码)与 DHR2 寄存器内容相加,所得总和转移到DAC_DOR2 中(三个 APB1 时钟周期之后)。LFSR2 计数器随即更新。

同步触发(生成不同 LFSR )

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为相同的值,以便为两个 DAC 通道配置相同的触发源
● 将两个 DAC 通道的 WAVEx[1:0] 设置为“01”,并在 MAMP1[3:0] 和 MAMP2[3:0] 位中设置不同的 LFSR 掩码值
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
触发信号到达时,LFSR1 计数器内容(使用 MAMP1[3:0] 配置的掩码)与 DHR1 寄存器内容相加,所得总和转移到 DAC_DOR1 中(三个 APB1 时钟周期之后)。LFSR1 计数器随即更新。
同时,LFSR2 计数器内容(使用 MAMP2[3:0] 配置的掩码)与 DHR2 寄存器内容相加,所得总和转移到 DAC_DOR2 中(三个 APB1 时钟周期之后)。LFSR2 计数器随即更新。

同步触发(生成单个三角波)

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为相同的值,以便为两个 DAC 通道配置相同的触发源
● 将两个 DAC 通道的 WAVEx[1:0] 设置为“1x”,并在 MAMPx[3:0] 位中配置相同的最大振幅值
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
触发信号到达时,DAC 1 通道三角波计数器内容(使用相同的三角波振幅)与 DHR1 寄存器内容相加,所得总和转移到 DAC_DOR1 中(三个 APB1 时钟周期之后)。DAC 1 通道三角波计数器随即更新。
同时,DAC 2 通道三角波计数器内容(使用相同的三角波振幅)与 DHR2 寄存器内容相加,所得总和转移到 DAC_DOR2 中(三个 APB1 时钟周期之后)。DAC 2 通道三角波计数器随即更新。

同步触发(生成不同三角波)

要将 DAC 配置为此转换模式,需要遵循以下顺序:
● 将两个 DAC 通道触发使能位 TEN1 和 TEN2 置 1
● 将 TSEL1[2:0] 和 TSEL2[2:0] 设置为相同的值,以便为两个 DAC 通道配置相同的触发源
● 将两个 DAC 通道的 WAVEx[1:0] 设置为“1x”,并在 MAMP1[3:0] 和 MAMP2[3:0] 位中设置不同的最大振幅值
● 将 DAC 双通道数据加载到所需 DHR 寄存器(DAC_DHR12RD、DAC_DHR12LD 或DAC_DHR8RD)
触发信号到达时,DAC 通道 1 三角波计数器内容(使用 MAMP1[3:0] 配置的三角波振幅)与DHR1 寄存器内容相加,所得总和转移到 DAC_DOR1 中(三个 APB1 时钟周期之后)。DAC通道 1 三角波计数器随即更新。
同时,DAC 通道 2 三角波计数器内容(使用 MAMP2[3:0] 配置的三角波振幅)与 DHR2 寄存器内容相加,所得总和转移到 DAC_DOR2 中(三个 APB1 时钟周期之后)。DAC 通道 2三角波计数器随即更新。

05. DAC寄存器

5.1 DAC 控制寄存器 (DAC_CR)

DAC control register
偏移地址:0x00
复位值:0x0000 0000

5.2 DAC 软件触发寄存器 (DAC_SWTRIGR)

DAC software trigger register
偏移地址:0x04
复位值:0x0000 0000

5.3 DAC 1 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R1)

DAC channel1 12-bit right-aligned data holding register
偏移地址:0x08
复位值:0x0000 0000

5.4 DAC 1 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L1)

DAC channel1 12-bit left aligned data holding register
偏移地址:0x0C
复位值:0x0000 0000

5.5 DAC 1 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R1)

DAC channel1 8-bit right aligned data holding register
偏移地址:0x10
复位值:0x0000 0000

5.6 DAC 2 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R2)

DAC channel2 12-bit right aligned data holding register
偏移地址:0x14
复位值:0x0000 0000

5.7 DAC 2 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L2)

DAC channel2 12-bit left aligned data holding register
偏移地址:0x18
复位值:0x0000 0000

5.8 DAC 2 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R2)

DAC channel2 8-bit right-aligned data holding register
偏移地址:0x1C
复位值:0x0000 0000

5.9 双 DAC 12 位右对齐数据保持寄存器 (DAC_DHR12RD)

Dual DAC 12-bit right-aligned data holding register
偏移地址:0x20
复位值:0x0000 0000

5.10 双 DAC 12 位左对齐数据保持寄存器 (DAC_DHR12LD)

DUAL DAC 12-bit left aligned data holding register
偏移地址:0x24
复位值:0x0000 0000

5.11 双 DAC 8 位右对齐数据保持寄存器 (DAC_DHR8RD)

DUAL DAC 8-bit right aligned data holding register
偏移地址:0x28
复位值:0x0000 0000

5.12 DAC 1 通道数据输出寄存器 (DAC_DOR1)

DAC channel1 data output register
偏移地址:0x2C
复位值:0x0000 0000

5.13 DAC 2 通道数据输出寄存器 (DAC_DOR2)

DAC channel2 data output register
偏移地址:0x30
复位值:0x0000 0000

5.14 DAC 状态寄存器 (DAC_SR)

DAC status register
偏移地址:0x34
复位值:0x0000 0000

06. 附录

6.1 【STM32】STM32系列教程汇总

网址:【STM32】STM32系列教程汇总

07. 声明

STM32F4xx英文参考手册

【STM32】DAC详解相关推荐

  1. STM32 DAC详解

    目录 01.DAC简介 02.DAC转换 03.功能说明 04.DAC输出电压 05.代码配置 上一篇介绍了<STM32ADC详解>,既然有模拟转数字的ADC模块,那么就必然有数字转模拟的 ...

  2. stm32位操作详解

    stm32位操作详解 STM32位操作原理 思想:把一个比特分成32位,每位都分配一个地址,这样就有32个地址,通过地址直接访问. 位操作基础 位运算 位运算的运算分量只能是整型或字符型数据,位运算把 ...

  3. STM32 定时器详解

    STM32 定时器详解 吃了一个猛亏,自己理解花了大半天时间,结果一看代码发现巨简单 算了,把自己理解的放上来吧 目录 STM32 定时器详解 前言 一.定时器种类和区分 二.时钟源 三.计数过程 3 ...

  4. STM32 GPIO 详解

    0. 实验平台 基于STM32F407ZG 1. GPIO 简介 1.1 简介 GPIO全称:General Purpose Input Output,即通用输入输出端口,一般用来采集外部器件的信息或 ...

  5. STM32 SPI详解

    目录 1.SPI简介 2.SPI特点 2.1.SPI控制方式 2.2.SPI传输方式 2.3.SPI数据交换 2.4.SPI传输模式 3.工作机制 3.1.相关缩写 3.2.CPOL极性 3.3.CP ...

  6. [STM32]DAC全解分析

    Stm32F1 Dac 全解分析 存在疑问 VREF 能不能大于VDDA 允许同步更新是什么意思 输出缓存原理和具体影响 DAC简介 主要特点: + 2个DAC转换器,支持两路输出 + 8位或者12位 ...

  7. STM32 ADC详解

    目录 01.ADC简介 02.STM32的ADC外设 03.STM32ADC框图讲解 04.触发源 05.转换周期 06.数据寄存器 07.中断 08.电压转换 09.电路图设计 10.代码设计 01 ...

  8. stm32定时器详解

    简介 在控制,电子领域中,时常需要定时控制,延时控制或者对某件事进行计数,如洗衣机的定时洗衣等等定时控制,载入通过对外部的脉冲进行计数来测量速度等 资源介绍 STM32一共有三种定时器,总共有14个定 ...

  9. STM32 串口详解

    目录 01.USART的特点 02.USART简介 2.1.数据传输模型 2.2.帧结构 2.3.波特率 03.STM32的USART 04.代码配置 01.USART的特点 USART是通用异步收发 ...

最新文章

  1. Nucleus 实时操作系统中断(上)
  2. [EXP]windows全版本SMB溢出工具加强版
  3. jQuery的noConflict()方法
  4. 【LeetCode】剑指 Offer 14. 剪绳子
  5. 改caffe 里面的contrsitve_loss
  6. python列表用来有序存放一组_Python期末习题练习
  7. 【人脸识别】基于matlab GUI BP神经网络人脸识别(含识别率)【含Matlab源码 891期】
  8. Xamarin学习笔记之尝试篇
  9. tail -f 命令详解
  10. 软件相貌测试准确吗,测另一半的相貌超准软件 提前了解对象的外貌
  11. 模拟量开环控制系统的组成
  12. @vaild权限校验框架配合java正则表达式
  13. 10分钟就能完成别人半天的工作量,Word长文档排版技巧分享
  14. Arduino寄存器(PWM)
  15. 全国最强计算机的大学排名,全国高校计算机学科实力最新排名,这19所高校最受认可!...
  16. win10+ubuntu的坑
  17. dell最新型的服务器,灵活设计新标准!戴尔R720服务器评测
  18. 20210127 中文论文参考文献自动编号
  19. ScriptManager ClientScriptManager
  20. 搜狐视频P2P技术揭秘 - 分享率控制篇

热门文章

  1. android画机器人,cdr怎么绘制安卓小人?cdr安卓机器人制作教程
  2. “微信教父”张小龙2021最新演讲,视频号、直播、创作者透漏了几大重要趋势丨国仁网络
  3. 功率放大芯片采用RFX2411 分集开关的2.4 GHz TX / RX增强器
  4. CSS内边距和外边距
  5. 基于BERT+BiLSTM+CRF的中文景点命名实体识别
  6. idea java代码混淆_idea 环境下代码混淆打包
  7. 上网本 linux中文版,veket|veket linux上网本操作系统 v5.30 简体中文正式版 - 飞极下载站...
  8. Sql语句的优化以及Sql语句优化工具
  9. linux修改tomcat默认的8080端口号
  10. 自动驾驶平台Apollo 2.5环境搭建