ZHCAFQ2A December   2023  – September 2025 MSPM0C1105 , MSPM0C1106 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1303 , MSPM0L1304 , MSPM0L1305 , MSPM0L1306 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346

 

  1.   1
  2.   2
  3.   修订历史记录
  4.   商标

说明

ADC 至 UART 子系统示例演示了如何使用内部 ADC 将模拟信号转换为数字表示形式并通过 UART 传输结果。该示例将 MCU 配置成充当外部 ADC 并通过 UART 发送原始 ADC 数据。此外,可选择让 MCU 预处理数据,然后通过 I2C 发送数据。下载 ADC 至 UART 示例的代码。

下图显示了系统的方框图。

 子系统功能方框图 图 1-1 子系统功能方框图

所需外设

该应用需要内部 ADC 和 1 个 UART 实例。

子块功能 使用的外设 注释
模拟信号捕获 ADC 在代码中称为 ADC12_0_INST
发送 ADC 数据 UART 完成 2 个 UART 事务以发送完整的 ADC 数据。

设计步骤

  1. 根据期望的模拟输入和设计要求确定 ADC 的包括基准源、基准值和采样率。
  2. 根据上一步中的要求在 SysConfig 中配置 ADC。
  3. 在 SysConfig 中配置 UART 外设,将 UART 设置为预期波特率,并设置用于预期通信的其他 UART 选项。
  4. 编写应用程序代码,以从存储器寄存器传输 ADC 数据至 UART。请参阅软件流程图以了解概况或直接查看代码。

设计注意事项

  1. 最大采样速度:ADC 的采样速度基于输入信号频率、模拟前端、滤波器或任何其他影响采样的设计参数。
  2. ADC 基准:选择与预期最大输入保持一致的基准,以利用 ADC 的满量程范围。
  3. 点击“Settings”:时钟源决定了样本的总时间和转换时间。时钟分频器与 SCOMP 设置一起决定总采样时间。SysConfig 根据采样时间设置来设置相应的 SCOMP。
  4. 可以根据 UART 系统来调整 UART 配置,例如奇偶校验、波特率等。

软件流程图

应用代码

UART 外设每次以 8 位数据包的形式发送数据。ADC 模块将数据存储到 16 位寄存器中。为了通过 UART 外设传输数据,ADC 数据必须拆分为高字节和低字节。高字节包含高 8 位,而低字节包含低 8 位。下面是用于拆分 ADC 结果并通过 UART 传输数据的代码。

gADCResult = DL_ADC12_getMemResult(ADC12_0_INST, DL_ADC12_MEM_IDX_0); uint8_t
                lowbyte = (uint8_t)(gADCResult & 0xFF); uint8_t highbyte = (uint8_t)((gADCResult
                >> 8) & 0xFF); DL_UART_Main_transmitData(UART_0_INST, highbyte);
                DL_UART_Main_transmitData(UART_0_INST, lowbyte);