资讯详情

零基础学习嵌入式

📅 2026/10/19 2:44:01 | 华诺云谱 👁 阅读
零基础学习嵌入式
嵌入式基础实验 2串口、USART 中断与 DMA 综合实验报告实验类型串口基础与 STM32 USART 综合实验实验平台STM32F103C8T6USART1PA9/PA10、Windows 10、USB/TTL 转 RS232 模块、串口助手、Keil MDK、STM32CubeMX串口参数115200 bit/s8 数据位1 停止位无校验无硬件流控8N1素材说明本报告引用的原始截图和视频已按正文首次出现的顺序重新编号位于报告素材文件夹同一组编号的副本也位于D:\新建文件夹 (2)\文件\个人文件\作业\嵌入式基础\作业三。摘要本实验围绕异步串行通信完成三部分工作。第一部分学习 UART/RS-232/RS-485/TTL 电平及 CH340 类 USB 串口模块的工作原理并搭建两台笔记本之间的串口文件传输链路。第二部分使用 STM32CubeMX、Keil 和 HAL/标准外设库配置 USART1在 115200 bit/s 下连续发送hello windows!比较无延时轮询发送、接收中断暂停/恢复和 DMA 连续发送三种实现。第三部分使用 Keil uVision 的软件仿真 Logic Analyzer 观察 USART 输出时序按照起始位、数据位和停止位解释波形并给出波特率测量方法。实验表明只要发送函数在写入下一个字节前等待发送数据寄存器空TXE轮询方式即使不显式加入延时也不会因为 CPU 写得太快而破坏 UART 帧上位机显示速度、串口助手缓存和 USB 驱动仍可能造成“看起来丢字节”。接收中断适合处理#/*控制命令DMA 适合连续大块发送可显著减少 CPU 逐字节参与。实际链路中TX/RX 必须交叉且应连接公共 GND不接地时偶尔能工作的现象通常来自 USB 屏蔽层、保护器件或寄生电容形成的非确定性回流不应作为可靠接线方案。1. 实验目标与安全说明1.1 实验目标理解 UART 异步帧结构、RS-232、RS-485 与 TTL 电平的差异。理解 CH340 USB-UART 芯片和 RS-232 电平转换器的分工。建立两台电脑之间的串口文件传输链路估算文件大小、波特率和传输时间的关系并用秒表或串口助手日志比较实际时间。使用 CubeMX/Keil 完成 USART1 115200、8N1 配置验证连续输出与#暂停、*恢复。用接收中断实现命令控制用 TX DMA 实现连续发送。用 Logic Analyzer 检查 UART 波形状态和实际波特率。1.2 电气安全与接线原则本实验默认 STM32 和 USB 串口模块为 3.3 V TTL 侧不要把 5 V TTL 直接接到只容忍 3.3 V 的 GPIO。“USB/TTL 转 RS232”模块的 RS-232 端不能直接接 STM32 PA9/PA10STM32 端应接模块的 TTL 端若必须接真正的 RS-232 接口需要使用 MAX232/MAX3232 一类电平收发器。上电前确认 TX/RX 没有反接到同名端确认所有设备电压等级一致。RS-232 输出可能达到正负数伏甚至更高幅值不能用普通示波器探头或单片机 GPIO 直接承受。2. 基础一串口协议、电平标准与 CH340 模块2.1 UART 异步串行帧UART 没有单独的时钟线发送端和接收端预先约定波特率、数据位数、校验方式和停止位。典型 8N1 帧如下空闲(1) | 起始位(0) | D0 D1 D2 D3 D4 D5 D6 D7低位先发 | 停止位(1)8N1 每个有效数据字节占用 1 个起始位 8 个数据位 1 个停止位共 10 bit。因此在不考虑协议包头、应答和空闲间隔时R b y t e ≈ B 10 , t ≈ S × 10 B R_{byte} \approx \frac{B}{10}, \qquad t \approx \frac{S\times 10}{B}Rbyte​≈10B​,t≈BS×10​其中B为波特率bit/sS为文件字节数t为理论秒数。115200 bit/s、8N1 的理想有效吞吐约为 11520 byte/s即约 11.25 KiB/s十进制约 11.52 kB/s。2.2 RS-232、RS-485 与 TTL 的区别项目TTL UARTRS-232RS-485信号形式单端、相对本地 GND单端、相对本地 GND但采用较大的正负电压差分 A/B 两线典型逻辑电平3.3 V 或 5 V高电平接近 VCC接收端通常把低于约 -3 V 和高于约 3 V 作为有效区具体阈值依器件而定由 A-B 差分电压判定抗共模干扰能力强连接方式TX 对 RX通常需要共地TX 对 RX通常需要共地半双工总线常用 A 对 A、B 对 B并在总线两端端接典型距离/节点板内或短线、点对点点对点短距离较长距离、多节点、工业现场收发器MCU UART GPIOMAX232/MAX3232 等MAX485、SN65HVD 等关键结论是TTL、RS-232、RS-485 不是同一种电平只是都可以承载异步串行协议。同样的“115200、8N1”协议参数不能消除电气接口不兼容问题。2.3 CH340“USB/TTL 转 232”模块的工作原理CH340 是 USB-UART 桥接芯片负责 USB 枚举、USB 数据包与 UART 的 TXD/RXD 字节流转换。常见模块有两种结构USB/TTL 模块CH340 直接输出 3.3 V/5 V TTL UART端子一般标注TXD、RXD、GND、VCC。USB/TTL 转 RS-232 模块在 CH340 后面再增加 MAX232/MAX3232 等电荷泵/电平转换器经过 RS-232 收发器后才得到正负摆幅的 RS-232 信号。模块上标注的“232”通常指这个第二级电平转换而不是 CH340 自身产生 RS-232 电平。发送方向的数据流为Windows USB 驱动 → USB 包 → CH340 → TTL UART → MAX232/MAX3232如有→ RS-232 线接收方向则反向经过 RS-232 接收器和 CH340最终在 Windows 中显示为虚拟串口COMx。因此排查故障时要分层检查Windows 是否识别 COM 口、CH340 驱动是否正常、TTL 侧是否有 UART 波形、RS-232 侧电平是否正确、两端参数是否一致。3. 基础二两台电脑串口传输文件3.1 硬件连接两台电脑各连接一个 USB/TTL 转 RS232 模块。若使用模块的 TTL 端进行实验建议连接如下电脑 A 模块 TXD ─────────→ 电脑 B 模块 RXD 电脑 A 模块 RXD ←───────── 电脑 B 模块 TXD 电脑 A 模块 GND ────────── 电脑 B 模块 GND两端模块分别由各自电脑 USB 口供电不要把两个模块的 VCC 随意并接。打开设备管理器确认两个虚拟串口号再在串口助手中设置一致的 115200、8、N、1 参数。3.2 串口助手操作流程在接收端打开串口选择正确的 COM 号和 115200/8N1。在发送端打开串口先发送短文本确认 TX/RX/GND 接线正确。进入串口助手的“协议传输/文件传输”页面选择图片、视频或压缩包等二进制文件。发送前清空接收窗口并记录系统时间传输结束后保存接收文件。对比原文件和接收文件的字节数、MD5/SHA-256并用秒表记录从点击“发送”到提示完成的时间。对大文件应关闭无关串口输出避免把调试文本混入二进制文件如果软件支持 XMODEM/YMODEM/ZMODEM应优先使用带校验和重传的协议。3.3 理论时间估算在 8N1、无额外协议开销的理想情况下按二进制 MiB 计算文件大小115200 bit/s 理论时间460800 bit/s 理论时间921600 bit/s 理论时间5 MiB7.58 min1.90 min0.95 min50 MiB75.85 min18.96 min9.48 min200 MiB5.06 h1.26 h37.93 min1 GiB25.91 h6.48 h3.24 h实际时间应大于或等于理论值因为文件传输通常还包含包头、长度、序号、校验、ACK/NAK、超时重传和软件缓冲刷新。可用效率估算η t i d e a l t a c t u a l , t a c t u a l ≈ S × 10 B × η \eta\frac{t_{ideal}}{t_{actual}},\qquad t_{actual}\approx\frac{S\times 10}{B\times\eta}ηtactual​tideal​​,tactual​≈B×ηS×10​当串口助手显示的平均有效效率约为 80%95% 时115200 bit/s 的实际吞吐约为 9.211.0 kB/s。若实测明显低于该范围应检查协议是否启用了逐包等待、发送间隔、流控或重传。实测数据说明本次提供的原始素材包含串口助手运行视频但没有包含“文件发送开始/结束时间”或接收文件校验值截图。因此这里给出可复现的计算和记录方法不把理论时间冒充为实测值。完成现场发送后将文件大小、波特率、开始时刻、结束时刻、实际秒数、接收文件哈希填入下表即可直接用于博客。文件大小字节波特率理论时间实测时间效率理论/实测校验结果图片/视频/压缩包现场填写115200S×10/1152003.4 TX/RX 两根线、不接电源或 GND 能否工作结论是有时会短暂显示数据但不能认为能正常、可靠地工作。原因分三层两个 USB 模块通常已经由各自电脑 USB 口供电所以“模块电源”可能仍然存在但信号电压必须相对于接收端参考地解释TX/RX 之间没有公共参考时输入阈值没有确定基准。实际系统中可能通过 USB 屏蔽层、电脑保护地、接口保护二极管、线缆电容或其他外设形成微小回流于是低速、短线时看起来还能收到数据。这是寄生路径不是协议保证。没有 GND 时共模电压可能超出收发器输入范围导致随机乱码、帧错误、丢包甚至通过保护结构反向供电。RS-232 的正负电平尤其需要稳定参考RS-485 虽为差分也需要在允许的共模范围内建立参考和屏蔽。因此实验报告中的规范接法应始终包含TX↔RX、RX↔TX、GND↔GND若使用真正的 RS-232 接口还要保证两端均经过正确的 RS-232 收发器不能直接把 TTL 接到 RS-232 电平线上。3.5 文件传输证据下面的视频是本实验素材中的串口助手运行记录可用于博客展示串口参数、接收窗口和操作过程。Markdown 页面中可直接播放PDF 中以“视频证据”文字提示代替可交互播放。视频 6串口助手运行记录4. 任务一USART1 轮询发送与#/*控制4.1 CubeMX 与 Keil 建工程安装 STM32CubeMX、Keil MDK 和对应 STM32F1 设备支持包安装完成后分别启动一次确认路径可用。CubeMX 新建 STM32F103C8Tx 工程选择USART1为 AsynchronousPA9 设为 TXPA10 设为 RX。在 USART1 参数中设置 Baud Rate115200、Word Length8 Bits、ParityNone、Stop Bits1、Hardware Flow ControlNone、ModeTX/RX。在 Project Manager 中选择 MDK-ARM V5勾选生成初始化代码并保留用户代码区点击 Generate Code 后用 Keil 打开.uvprojx。编译、下载程序串口助手设置为与 USART1 完全相同的 115200/8N1 参数。供电和调试连接STM32PA9(USART1_TX)接 USB 串口模块RXDPA10(USART1_RX)接模块TXD模块与开发板共地。若使用板载 USB-UART请按板卡原理图确认 USART1 是否已经被占用。4.2 轮询发送代码素材图 1 展示了标准外设库的 GPIO、USART1 和 115200/8N1 初始化素材图 2 展示了主循环连续发送字符串的代码。标准外设库实现的核心逻辑如下HAL 库可用HAL_UART_Transmit()等价替换voidUSART_SendByte(uint8_tch){while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)RESET){}USART_SendData(USART1,ch);}voidUSART_SendString(char*str){while(*str){USART_SendByte((uint8_t)*str);}}intmain(void){USART1_Init();while(1){USART_SendString(hello windows!\r\n);}}4.3 不加延时是否丢数据在USART_SendByte()中等待 TXE 的前提下不需要额外延时来保护 UART 帧。TXE 置位表示发送数据寄存器可以接收下一个字节UART 外设和移位寄存器会按照 115200 bit/s 的时钟逐位发送CPU 不能跳过硬件串行化过程。hello windows!\r\n共 16 字节每帧 10 bit连续发送一个字符串的理论时间约为t l i n e 16 × 10 115200 1.3889 ms t_{line}\frac{16\times 10}{115200}1.3889\text{ ms}tline​11520016×10​1.3889ms素材图 3 显示串口助手连续收到多行hello windows!与上述判断一致。需要区分以下三种“丢数据”现象真正的 UART 丢字节常见于没有等待 TXE/TC、覆盖 DMA 缓冲区、接收中断处理不及时或波特率参数不一致。串口助手显示丢行窗口刷新跟不上或软件只保留最近若干行后台接收缓存可能仍然完整。USB/驱动/上位机处理丢失USB 包、驱动队列或应用层日志保存失败需用保存文件和哈希校验判断。4.4#暂停、*恢复轮询版可以在主循环中检查 RXNE 并修改tx_pausedvolatileuint8_ttx_paused0;while(1){if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)!RESET){uint8_tc(uint8_t)USART_ReceiveData(USART1);if(c#)tx_paused1;if(c*)tx_paused0;}if(!tx_paused){USART_SendString(hello windows!\r\n);}}素材图 4 显示上位机输入#后发送窗口仍保持串口打开素材图 5 显示随后输入区的控制字符记录可作为暂停/恢复操作的证据。更严格的工程实现应在收到#后停止启动新的发送任务并允许当前正在移位的最后一个字节自然完成收到*后再启动发送。这样不会在半个 UART 帧中强行改变 TX 电平。5. 任务二串口接收中断与 DMA 连续发送5.1 中断与 DMA 的原理串口接收中断USART 接收到一个字节并置位 RXNE 后NVIC 进入USART1_IRQHandler()HAL 再调用HAL_UART_RxCpltCallback()。回调中读取rx_byte、处理命令并再次调用HAL_UART_Receive_IT()接收下一个字节。发送 DMACPU 把内存缓冲区首地址、USART1 数据寄存器地址和长度写入 DMA 通道DMA 在每个发送请求到来时搬运一个字节CPU 不必逐字节轮询。普通模式传完一帧后产生完成中断回调中启动下一帧。暂停语义收到#后把tx_paused置 1当前 DMA 帧完成后不再启动下一帧。收到*后清零标志并立即尝试启动下一帧。5.2 CubeMX 配置要点在 USART1 保持 115200/8N1在 DMA 中添加 USART1_TX选择DMA1 Channel4、Memory to Peripheral、Peripheral increment Disable、Memory increment Enable、Byte 对齐、Normal 模式、High priority打开USART1_IRQn和DMA1_Channel4_IRQn。素材图 911 分别给出 USART/DMA 初始化、MSP 通道绑定和中断入口代码。5.3 DMA 连续发送主程序素材图 7 是 DMA 连续发送主流程图中StartNextDmaFrame()只在未暂停且 UART 空闲时调用HAL_UART_Transmit_DMA()。staticuint8_trx_byte;staticvolatileuint8_ttx_paused0U;staticconstuint8_thello_msg[]hello windows!\r\n;staticvoidStartNextDmaFrame(void){if(!tx_pausedhuart1.gStateHAL_UART_STATE_READY){HAL_UART_Transmit_DMA(huart1,(uint8_t*)hello_msg,sizeof(hello_msg)-1U);}}intmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_DMA_Init();MX_USART1_UART_Init();HAL_UART_Receive_IT(huart1,rx_byte,1U);StartNextDmaFrame();while(1){}}voidHAL_UART_TxCpltCallback(UART_HandleTypeDef*huart){if(huart-InstanceUSART1)StartNextDmaFrame();}5.4 接收中断控制#/*素材图 8 展示HAL_UART_RxCpltCallback()收到#设置暂停标志收到*清除暂停标志然后重新打开单字节接收中断。voidHAL_UART_RxCpltCallback(UART_HandleTypeDef*huart){if(huart-InstanceUSART1){if(rx_byte#)tx_paused1U;elseif(rx_byte*)tx_paused0U;HAL_UART_Receive_IT(huart1,rx_byte,1U);if(!tx_paused)StartNextDmaFrame();}}HAL_UART_ErrorCallback()中也应重新调用HAL_UART_Receive_IT()避免一次噪声或溢出后接收链路永久停止。回调内只做短操作不执行阻塞延时、不打印大量日志。5.5 USART1 与 DMA 初始化证据工程源码目录为实验2.2/新建文件夹/STM32_USART_DMA_Interrupt/ ├─ STM32_USART_DMA_Interrupt.ioc ├─ Core/Inc/main.h、stm32f1xx_it.h ├─ Core/Src/main.c、stm32f1xx_hal_msp.c、stm32f1xx_it.c └─ MDK-ARM/STM32_USART_DMA_Interrupt.uvprojxKeil 中勾选Options for Target → Output → Create HEX File后 BuildHEX 默认位于MDK-ARM/Objects/STM32_USART_DMA_Interrupt.hex。烧录后串口助手应持续看到hello windows!发送#后当前帧完成即暂停发送*后继续。5.6 中断与 DMA 实验的预期现象和排错现象可能原因检查方法完全无输出COM 号、供电、TX/RX 方向错误先用回环或发送单字节确认链路输出乱码波特率/校验/停止位不一致或 TTL/RS-232 电平混接两端都设 115200/8N1确认使用正确电平转换器#偶尔无效接收中断未重新开启或回调被长时间阻塞检查HAL_UART_Receive_IT()和错误回调暂停后多出一行#到达时当前 DMA 帧已经开始允许当前帧完成是正常的需要立即停止时使用 Abort APIDMA 只发送一帧未打开 DMA 中断或未实现 Tx 完成回调检查 DMA1 Channel4 IRQ 和HAL_UART_TxCpltCallback()6. 任务三Keil Logic Analyzer 波形与波特率6.1 软件仿真操作流程在 Keil 中选择 Debug/Simulator加载已编译程序并进入调试。打开View → Analysis Windows → Logic Analyzer。在 Setup 中添加 USART1_TX/PA9 对应的数字信号不同设备包的信号名可能显示为PORTA.9、USART1_TX或外设输出节点。运行一小段时间后暂停使用 Zoom 放大单个 UART 帧设置两个游标读取相邻边沿的时间差。保存波形截图并结合串口格式对起始位、8 个数据位和停止位进行解码。6.2 波形判断素材图 12 是 Logic Analyzer 截图。UART 空闲状态应为高电平每个字符开始时出现一个低电平起始位随后是低位先发的 8 个数据位最后回到高电平停止位。对于 8N1一个完整字符框架为 10 bit115200 bit/s 的单 bit 周期应为1/115200 8.6806 μs一个完整字符不含额外空闲约为86.8056 μs若发送hello windows!\r\n连续帧之间可以没有额外空闲但每帧的起始位仍必须保持低电平一个 bit 周期。6.3 实际波特率计算不要只根据截图横轴的粗略网格读数计算波特率。应在波形上选取两个相隔N个 bit 的同类边沿记时间差为ΔtT b i t Δ t N , B a c t u a l N Δ t T_{bit}\frac{\Delta t}{N},\qquad B_{actual}\frac{N}{\Delta t}Tbit​NΔt​,Bactual​ΔtN​例如选取一个字符的起始位下降沿和下一个字符的起始位下降沿若两边沿之间包含 10 个 bit理想测量值应接近86.8056 μs则B a c t u a l ≈ 10 86.8056 μ s ≈ 115200 b i t / s B_{actual}\approx\frac{10}{86.8056\ \mu s}\approx115200\ bit/sBactual​≈86.8056μs10​≈115200bit/s若使用单 bit 相邻边沿预期Δt≈8.6806 μs。测量时应记录游标读数并将结果写入下表截图 12 的当前缩放级别适合证明波形逻辑关系但不足以替代精确的微秒级游标读数。测量项目游标 1游标 2NbitΔt计算波特率单 bit 边沿现场填写现场填写11/Δt一帧起始位到下一帧起始位现场填写现场填写10若无额外空闲10/Δt6.4 时序正确性结论若波形满足“空闲高、起始低、数据位持续时间一致、停止位高、相邻帧不发生非整数 bit 宽度跳变”则 UART 时序正确。若 Logic Analyzer 显示的Δt与 8.6806 μs 有明显偏差应优先检查系统时钟、USART 外设时钟和 CubeMX 的时钟树STM32F1 的 USART1 在 APB2 上本工程时钟配置为 HSE8 MHz、PLL9 倍、系统时钟72 MHz、APB272 MHz。7. 结果、讨论与改进7.1 三种发送方式比较方式CPU 参与方式优点局限适用场景轮询每个字节等待 TXE代码直观、易调试CPU 被占用扩展实时任务困难简单命令行、低数据量接收中断字节到达时进入 ISR不需主循环轮询能及时处理#/*回调必须短小需处理错误恢复异步控制命令TX DMADMA 自动搬运发送缓冲区CPU 占用低适合连续/大块数据配置和回调复杂需管理缓冲区生命周期连续日志、文件、协议帧7.2 误差来源波特率误差晶振误差、时钟树设置错误、分频寄存器取整都会改变 bit 周期。软件开销串口助手刷新、协议 ACK、文件系统写入和重传都会使实测文件时间增加。电平与接地TTL/RS-232 混接或缺少共地会产生随机错误表现为乱码、丢字节或偶发中断。缓冲区生命周期DMA 发送期间不能修改或释放发送缓冲区连续发送应在 Tx 完成回调后再复用缓冲区。测量分辨率Logic Analyzer 横轴缩放过大时单 bit 只有几个像素必须放大并用游标读微秒级时间。7.3 可改进方向文件传输采用 XMODEM/YMODEM/ZMODEM 或自定义“序号 长度 CRC32 ACK/重传”协议而不是裸发文件。对大文件采用 DMA 双缓冲或环形缓冲避免发送回调之间出现空隙。在接收端增加 CRC/哈希校验并记录原文件与接收文件字节数。对#/*采用命令帧例如0xAA 命令 CRC避免二进制文件中恰好出现#或*被误当成控制字符。生产系统使用 RS-485 时增加终端电阻、偏置电阻、TVS 和隔离器件并按总线拓扑布线。8. 操作记录清单可直接用于博客安装 STM32CubeMX、Keil MDK 和 STM32F1 设备包。CubeMX 配置 USART1PA9/PA10、115200、8N1、无流控。生成 MDK 工程并完成轮询版hello windows!。串口助手验证连续接收记录是否出现真实丢字节。发送#确认停止启动新帧发送*确认继续发送。打开 USART1 RX 中断验证单字节回调和错误恢复。打开 DMA1 Channel4 TX验证 Tx 完成回调连续启动下一帧。Keil 仿真 Logic Analyzer 添加 PA9/USART1_TX测量Δt并计算实际波特率。两台电脑完成至少一个二进制文件传输记录文件大小、理论时间、实测时间和 SHA-256。编译并保存 HEX将工程源码压缩为 ZIP 与本报告一起提交。9. 参考资料《STM32串口通信USART学习笔记》https://www.pianshen.com/article/8285571527/《基于 MDK 创建 STM32 汇编程序串口输出 Hello world》https://blog.csdn.net/vic_to_ry/article/details/110451036串口文件传输时间估算参考https://blog.csdn.net/cleveryoga/article/details/121344003STM32 USART DMA 参考https://blog.csdn.net/qq_47281915/article/details/121024427STM32 USART DMA/中断参考https://blog.csdn.net/qq_47281915/article/details/121053903STM32 串口 DMA 参考https://www.cnblogs.com/breezy-ye/articles/12157442.htmlHAL 串口 DMA 参考https://blog.csdn.net/as480133937/article/details/104827639/课程资料《第九章__串口通信(new).pdf》《第七章__中断系统(new).pdf》《第六章__通用输入输出接口二(new).pdf》。10. 提交信息以下信息在发布博客和 GitHub 仓库后填写报告正文不虚构尚未生成的地址博客地址待填写项目 GitHub 地址待填写工程源码压缩包STM32_USART_DMA_Interrupt_工程源码.zip报告 Markdown嵌入式基础实验2_串口_USART中断_DMA_实验报告.md报告 PDF嵌入式基础实验2_串口_USART中断_DMA_实验报告.pdf附录 A证据编号与原始素材对应关系报告编号文件类型内容原始位置1PNG标准库 USART1 初始化和发送函数实验2.1/屏幕截图 2026-10-17 232257.png2PNG连续发送主循环实验2.1/屏幕截图 2026-10-17 232451.png3PNG串口助手接收hello windows!实验2.1/屏幕截图 2026-10-17 232533.png4PNG发送#的暂停操作实验2.1/屏幕截图 2026-10-17 232739.png5PNG控制字符输入记录实验2.1/屏幕截图 2026-10-17 232935.png6MP4串口助手运行视频实验2.1/正点原子串口调试助手 V2.8 2026-10-17 23-31-28.mp47PNGDMA 连续发送主流程实验2.2/01_main_dma_send.png8PNGRX 中断#/*回调实验2.2/02_main_interrupt_control.png9PNGUSART1 和 DMA 初始化实验2.2/03_uart_dma_config.png10PNGMSP GPIO/DMA 通道配置实验2.2/04_msp_dma_config.png11PNGUSART/DMA 中断入口实验2.2/05_interrupt_handlers.png12PNGKeil Logic Analyzer 波形实验2.3/4.png
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑