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
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 数据。 |
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);