STM32利用虚拟串口调试
奋斗STM32开发板Tiny NRF24L01转USB虚拟串口例程手册

奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验NRF24L01+转 USB 虚拟串口实验实验平台:奋斗版STM32开发板Tiny 实验内容:板子通过USB加电后,先向串口1输出一串测试数据,然后USB被PC识 别出来,虚拟出一个串口号给这个USB设备,此时可以通过在PC端的串口助手类 软件选择该串口号。
进入串口软件界面,可以通过软件无线收发一帧长度最长 为32字节的数据。
该例程可以和V3及MINI板的NRF24L01 UCGUI例程配合使用。
预先需要掌握的知识 2.4G通信模块NRF24L01 1. 产品特性2.4GHz 全球开放ISM 频段,最大0dBm 发射功率,免许可证使用 支持六路通道的数据接收 低工作电压:1.9 1.9~3.6V 低电压工作 高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象(软件设置1Mbps或者2Mbps的空中传输速率) 多频点:125 频点,满足多点通信和跳频通信需要 超小型:内置2.4GHz天线,体积小巧,15x29mm(包括天线) 低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗。
低应用成本:NRF24L01 集成了所有与RF协议相关的高速信号处理部分,比如:自动重发丢失数据包和自动产生应答信号等, NRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口, 便于使用低成本单片机。
便于开发:由于链路层完全集成在模块上,非常便于开发。
自动重发功能,自动检测和重发丢失的数据包,重发时间及重发次数可软件控制 自动存储未收到应答信号的数据包 自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程 载波检测—固定频率检测 内置硬件CRC 检错和点对多点通信地址控制 数据包传输错误计数器及载波检测功能可用于跳频设置 可同时设置六路接收通道地址,可有选择性的打开接收通道 标准插针Dip2.54MM 间距接口,便于嵌入式应用2.基本电气特性淘宝店铺:1奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验3. 引脚定义:4.工作方式NRF2401有工作模式有四种: 收发模式 配置模式 空闲模式 关机模式 工作模式由CE 和寄存器内部PWR_UP、PRIM_RX 共同控制,见下表:淘宝店铺:2奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验4.1 收发模式收发模式有Enhanced ShockBurstTM收发模式、ShockBurstTM收发模式和直接收发模式三种,收发模式由器件配置字决定,具体 配置将在器件配置部分详细介绍。
STM32keilMDK仿真检验

信号函数当µVision3模拟执行目标程序时,信号函数可以在后台实现信号输入、脉冲输入等重复操作。
信号函数可用于模拟和测试串行I/O、模拟I/O、端口通讯和其他一些重复发生的外部事件。
因为当µVision3模拟目标程序时,信号函数是在后台执行。
因此,信号函数必须在某些地方调用twatch函数来进行延迟,以便让µVision3能运行目标程序。
若信号函数从不调用twatch,则µVision3会报告错误。
µVision3提供了一部分能在信号函数中使用的系统变量。
详情请参考系统变量。
系统变量系统变量可在程序中任何位置的变量和其他表达式中使用,用于获取一些特殊功能值。
下表列出了允许使用的系统变量,以及数据类型和使用方法。
变量类型描述$ unsigned long 表示当前程序计数器值。
可以使用$表达和修改程序计数器。
例如,$ = 0x4000可将当前程序计数器值设置为0x4000。
_break_ unsigned int 令目标程序中止运行。
如果将_break_ 设置为一个非零值,µVision 将挂起目标程序的执行。
在用户和信号函数中使用该变量可挂起目标程序的执行。
_traps_ unsigned int 若将_traps_ 设置为一个非零值,µVision将现实166个硬件陷阱:未定义的操作码,被保护指令错,非法字操作访问,非法指令访问,堆栈上溢,堆栈下溢等。
states unsigned long CPU指令状态计数器的当前值;当目标程序开始执行时,该计数器从0开始每执行一条就加1。
注意states 是一个只读变量。
itrace unsigned int 表示目标程序执行时是否记录跟踪过程。
若itrace 为0,则不记录跟踪过程;若itrace 是一个非0值,则记录跟踪过程。
更多相关信息可参考Trace Recording 。
radix unsigned int 设置显示数据的进制,radix 可为10 或16,默认值为16 用于HEX 输出.信号函数的定义由关键字SIGNAL开始,格式如下:SIGNAL void fname (parameter_list) {statements}fname i函数名parameter_list i传递给函数的参数表,每个参数必须包括一个类型声明和一个名字。
STM32微控制器虚拟串口通信实现与仿真

—科教导刊(电子版)·2018年第17期/6月(中)—269STM32微控制器虚拟串口通信实现与仿真熊军洲(重庆电子工程职业学院电子与物联网学院重庆401331)摘要针对STM32微控制器串口通信,提出了一种虚拟串口通信仿真方法,采用虚拟串口软件、串口调试助手及Keil 软件相结合的方式对串口的发送和接收进行仿真。
结果表明,该方法在不需要硬件的前提下STM32微控制器串口能依靠软件仿真正常地发送和接收数据,验证串口正常工作。
关键词STM32串口虚拟串口软件串口调试助手Keil中图分类号:TP335文献标识码:A 1实现原理与仿真设置该方法不需要硬件开发板和仿真器,也不关注计算机是否有串口,而是利用虚拟串口软件(Virtual Serial Port Driver ,VSPD )创建虚拟的串行通信接口,因此计算机上需要安装VSPD 软件、串口调试助手和Keil uVision5软件。
VSPD 成对地创建虚拟串口,这些虚拟的串口与真实的物理串口在使用上完全一致,通过虚拟互连将创建的成对串口相互连在一起,相当于使用数据线连接了两个串口,从而可以实现发送和接收数据的仿真。
新建虚拟串口的数量是不受限制的,因此可以方便地扩展串口的数量。
具体的仿真设置如下:1.1打开VSPD 软件,创建虚拟串口图1:虚拟串口的创建打开软件后,在出现的界面上manage ports 选择两个串口号然后点击Add pair ,这时界面左侧的Serial ports explorer 部分的Virtual ports 下显示两个虚拟串口COM1和COM2。
这两个串口即为创建完的串口,如果需要继续增加串口,只需在manage ports 下继续选择串口号然后点击Add pair 即可。
将虚拟串口COM1和COM2与STM32微控制器中的一个USART 绑定,即可实现USART 的仿真调试。
1.2打开Keil uVision5软件,绑定串口将编写的串口程序编译链接生成可执行文件后,在Dubug 模式下进行调试仿真。
USB虚拟串口设计

毕业设计 [论文]题目:基于STM32的USB虚拟串口学院:电气与信息工程学院专业:电气工程及其自动化姓名:学号:指导老师:完成时间:2015年5月19日河南城建学院本科毕业设计(论文)中文摘要摘要USB接口是最为简单的接口,它具有传输速度快、即插即用、端口扩展简单有效等特点,在数据传输技术飞速发展的当代USB接口得到广泛的应用。
越来越多的电脑设备开始采用USB接口进行数据的传输,而通用异步串行通信口(简称串口或者COM口)是一种比较古老的串行通信口,在几年前的PC上,几乎是必备接口。
以前的设备与PC相连基本上都是用的COM口,那么将设备移植到USB接口成为人们研究的热门。
本论文以USB通信设备类中的抽象控制模型为基础,对通信设备类及实现虚拟设备的原理进行了研究,设计并实现了基于通信设备类的虚拟串口驱动程序。
论文研究设计了基于STM32单片机的USB虚拟串口驱动程序的结构和实现方案,该程序主要由通信命令转换和数据传输两部分构成,虚拟串口的实现技术在数据传输方面进行了改进。
论文的主要工作如下:1.研究了USB协议的请求和传输模式,分析了通信设备类实现虚拟设备的方案。
2.给出了一种符合通信设备类中抽象控制模型的虚拟串口实现方案。
该方案提供了一种基于通信设备类开发虚拟设备的模板,对设计中的诸多问题进行了详细的说明,并改进了虚拟串口驱动程序中数据的处理流程。
3.将改进后的数据处理流程是现在虚拟串口中,生成的一种基于通信设备类的虚拟串口稳定、高速。
最后,在串口测试软件下对虚拟串口驱动程序进行了测试,达到了预期目标。
关键字:通讯设备类,枚举过程,虚拟串口程序,抽象控制模型河南城建学院本科毕业设计(论文)AbstractAbstractUSB interface is the most simple interface, it has the transmission speed, plug and play, port extension characteristics such as simple and effective, in rapid development of the contemporary USB data transmission technology has been widely used. More and more computer equipment used USB interface for data transmission, and the universal asynchronous serial communication port (hereinafter referred to as a serial port or COM) is a relatively old serial communication port, in a few years ago on a PC, is almost a necessary interface. Before the equipment connected to the PC are basically use the COM, then transplanted device into the USB interface become a hot research.Abstract in this paper by USB communication device class control model, based on the communication device class and realize the principle of virtual device are studied, designed and implemented based on the virtual serial port communication device class driver.Thesis study design based on the STM32 MCU USB virtual serial port driver structure and implementation scheme of the program is mainly consisting of communication command conversion and data transmission, the implementation technologies of virtual serial port is improved in terms of data transmission. Paper's main work is as follows:1.to study the requests of USB protocol and transmission mode, analyzes the communication device class implementation scheme of virtual devices.2.presents a communication device class of control model of the implement of virtual serial port. This scheme provides a virtual device based on the communication device class development of templates, to account for the problems in detail in the design, and improve the virtual serial port driver in data processing.3.data processing of the improved process is now in virtual serial port, the generated based on the virtual serial port communication device class stability, high speed. Finally, under the serial test software of virtual serial port driver was tested, and reached the anticipated goal.Keywords: Communication equipment Class ;T he enumeration process;Abstract Control Model河南城建学院本科毕业设计(论文)目录目录摘要 (I)Abstract (II)目录........................................................................................................................................................ I II 第1章绪论. (1)1.1 USB虚拟串口设计背景及其意义 (1)1.2 USB虚拟串口设计研究方法及目标 (2)1.3 USB虚拟串口设计国内外研究现状 (2)第2章USB及串口简单介绍 (4)2.1 USB简介 (4)2.2 串口简介 (4)2.3 USB虚拟串口简介 (5)第3章 USB和USB CDC协议 (6)3.1 通用串行总线USB (6)3.1.1 USB协议相关知识介绍 (6)3.1.2 USB协议枚举过程分析 (8)3.2 USB CDC协议 (9)3.3 USB通信过程 (10)第4章虚拟串口的实现 (12)4.1 串口的工作原理 (12)4.2 USB虚拟串口设计 (13)4.2.1 STM32 USB部分说明 (13)4.4.2 USB电路连接 (14)4.2.3 虚拟串口程序设计 (15)第5章结论 (18)参考文献 (19)致谢 (20)附录: (21)河南城建学院本科毕业设计(论文)第1章绪论第1章绪论1.1 USB虚拟串口设计背景及其意义USB作为一种计算机总线技术,在现在的计算机上已经是不可或缺的了。
奋斗STM32开发板Tiny NRF24L01转USB虚拟串口例程手册

奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验NRF24L01+转 USB 虚拟串口实验实验平台:奋斗版STM32开发板Tiny 实验内容:板子通过USB加电后,先向串口1输出一串测试数据,然后USB被PC识 别出来,虚拟出一个串口号给这个USB设备,此时可以通过在PC端的串口助手类 软件选择该串口号。
进入串口软件界面,可以通过软件无线收发一帧长度最长 为32字节的数据。
该例程可以和V3及MINI板的NRF24L01 UCGUI例程配合使用。
预先需要掌握的知识 2.4G通信模块NRF24L01 1. 产品特性2.4GHz 全球开放ISM 频段,最大0dBm 发射功率,免许可证使用 支持六路通道的数据接收 低工作电压:1.9 1.9~3.6V 低电压工作 高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象(软件设置1Mbps或者2Mbps的空中传输速率) 多频点:125 频点,满足多点通信和跳频通信需要 超小型:内置2.4GHz天线,体积小巧,15x29mm(包括天线) 低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗。
低应用成本:NRF24L01 集成了所有与RF协议相关的高速信号处理部分,比如:自动重发丢失数据包和自动产生应答信号等, NRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口, 便于使用低成本单片机。
便于开发:由于链路层完全集成在模块上,非常便于开发。
自动重发功能,自动检测和重发丢失的数据包,重发时间及重发次数可软件控制 自动存储未收到应答信号的数据包 自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程 载波检测—固定频率检测 内置硬件CRC 检错和点对多点通信地址控制 数据包传输错误计数器及载波检测功能可用于跳频设置 可同时设置六路接收通道地址,可有选择性的打开接收通道 标准插针Dip2.54MM 间距接口,便于嵌入式应用2.基本电气特性淘宝店铺:1奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验3. 引脚定义:4.工作方式NRF2401有工作模式有四种: 收发模式 配置模式 空闲模式 关机模式 工作模式由CE 和寄存器内部PWR_UP、PRIM_RX 共同控制,见下表:淘宝店铺:2奋斗版 STM32 开发板例程手册———NRF24L01+转 USB 虚拟串口实验4.1 收发模式收发模式有Enhanced ShockBurstTM收发模式、ShockBurstTM收发模式和直接收发模式三种,收发模式由器件配置字决定,具体 配置将在器件配置部分详细介绍。
STM32F10x-USB调试记录

STM32F10x系列USB初学调试——by xiaohuolong1827关于STM32F10x系列USB调试,网上各大神已进行了相关详解,现对整体流程进行大概梳理。
1. 官方例程下载从ST官网下载USB示例程序,《STM32_USB-FS-Device_Lib_V4.1.0》,资源包编号“en.stsw-stm32121”。
有如下示例工程:2. 辅助工具/资料下载为了后续能愉快的调试示例程序,观察试验现象,可根据需要额外下载如下工具/资料:(1)Bus Hound。
此工具可以看到电脑上所有的device,并且选则相应的device时,点击capture,可以进行设备通信数据的捕获。
(2)单片机多功能调试助手-温子祺。
该助手具备查找USB设备功能(同时其他的功能也基本上是嵌入式开发者的必备工具。
)(3)HID调试助手。
进行USB设备的数据收、发。
(4)ST官网的HIDDemo_V1.0.2_Setup.exe工具(资源包编号en.stsw-stm32084)。
该工具是与Custom_HID示例程序配套的。
(5)ST官网的DfuSe_Demo_V3.0.6_Setup.exe工具(资源包编号en.stsw-stm32080)。
该工具是与DeviceFirmwareUpgrade示例程序配套的。
(6)USB官网的HID Descriptor Tool(我下载的是dt2_4.zip版本)。
该工具可用来辅助生产HID设备的描述符。
(7)USB基本协议,可参考网友的《STM32-USB学习笔记》、网友的《STM32 USB HID详解》、USB设备类别码、HID描述《Device Class Definition for Human Interface Devices (HID)》。
建议先读一下《STM32-USB学习笔记》。
3. 目标板从官方的文件包里来看,示例程序包含如下开发板:如果你没有上述开发板,也没有关系,只要你的试验板是上述型号的CPU并且引出了相关USB接口,就可以进行USB调试了(我就没有)。
stm32跑RT-thread之串口操作简介

#define SAMPLE_UART_NAME
"uart2" /* 串口设备名称 */
static rt_device_t serial;
/* 串口设备句柄 */
/* 查找串口设备 */
serial = rt_device_find(SAMPLE_UART_NAME);
/* 以 DMA 接收及轮询发送模式打开串口设备 */
460800
#define BAUD_RATE_921600
921600
#define BAUD_RATE_2000000
2000000
#define BAUD_RATE_3000000 /* 数据位可取值 */
3000000
#define DATA_BITS_5
5
#define DATA_BITS_6
要此位也可以。
•
停止位: 表示一帧数据的结束。电平逻辑为 “1”。
•
波特率:串口通信时的速率,它用单位时间内传输的二进制代码的有效
位(bit)数来表示,其单位为每秒比特数 bit/s(bps)。常见的波特率值有
4800、9600、14400、38400、115200 等,数值越大数据传输的越快,波特率为
#define RT_DEVICE_FLAG_STREAM
0x040 /* 流模式
*/
/* 接收模式参数 */
#define RT_DEVICE_FLAG_INT_RX
0x100 /* 中断接收模式 */
#define RT_DEVICE_FLAG_DMA_RX /* 发送模式参数 */ #define RT_DEVICE_FLAG_INT_TX
UART 设备 UART 简介
STM32F030_USART详细配置说明_stm32f030串口

STM32F030_USART详细配置说明_stm32f030串口串口是我们在编程时最经常用的问题,通常用它来发送和接收数据,同时它还有另外一个功能——检测程序是否正确,stm32f030系类单片机自然而然少不了串口,本文主要介绍STM32F030_USART的几个常用的简单应用和它的功能配置。
1、概述通用同步异步收发器(USART)提供了一个灵活的方式,使 MCU 可以与外部设备通过工业标准NRZ 的形式实现全双工异步串行数据通讯。
USART 可以使用分数波特率发生器,提供了超宽的波特率设置范围。
可以使用DMA 实现多缓冲区设置,从而能够支持高速数据通讯•全双工,异步通讯•可配置的 16 倍或 8 倍过采样方法提供速度和时钟容忍度间的灵活选择•小数波特率发生器•自动波特率检测•单线半双工通讯•停止位个数可设置 - 支持 1 个或 2 个停止位•十四个中断源和中断标志•- CTS 切换•- LIN 断开检测•-发送数据寄存器空•-发送完成•-接收数据寄存器满•-检测到线路空闲•-溢出错误•-帧错误•-噪声错误•-奇偶错误•-地址 / 字符匹配•-接收超时中断•-块结束中断•-从 Stop 模式唤醒•校验控制:•-发送奇偶校验位•-接收数据的奇偶检查2、准备工作1.认真阅读STM32F030x数据手册2.了解USART的运行原理3.查看STM32F030开发板原理图和封装图4.电脑装有keil等编译软件3、寄存器说明控制寄存器 1(USART_CR1)控制寄存器 2(USART_CR2)控制寄存器 3(USART_CR3)波特率寄存器( USART_BRR)保护时间和预分频器寄存器( USART_GTPR)中断和状态寄存器(USART_ISR)中断标志清除寄存器( USART_ICR)数据接收寄存器( USART_RDR)数据发送寄存器( USART_TDR)4、USART配置ART原理图ART代码分析3.①USART初始化void Usart_Init(uint32_t BaudRate){ USART_InitTypeDef USART_InitStruct; GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE); /* PA9-TX-推挽复用PA10-RX-浮空输入/上拉输入*/ GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1); GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF;GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF;GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;GPIO_Init(GPIOA,&GPIO_InitStruct); /*USART基本配置*/ USART_ART_BaudRate=BaudRate;USART_ART_HardwareFlowControl=USART_Hardwa reFlowControl_None;USART_ART_Mode=USART_Mode_Tx|USART_Mode_ Rx; USART_ART_Parity=USART_Parity_No; USART_ART_StopBits=USART_StopBits_1;USART_ART_WordLength=USART_WordLength_8b; USART_Init(USART1,&USART_InitStruct); /*使能接收中断*/ NVIC_Config(USART1_IRQn); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_Cmd(USART1,ENABLE);}②USART发送数据void USART1_SendBuf(uint8_t *pBuf, uint32_tu32Len){ while(u32Len--) { /*判断发送缓冲区是否为空*/ while(!USART_GetFlagStatus(USART1,USART_FLAG_TXE)); USART_SendData(USART1,*pBuf++); }}③USART接收数据uint8_t USART1_ReciverBuf(void){ /*判断接收缓冲区是否为非空*/ while(!USART_GetFlagStatus(USART1,USART_FLAG_RXNE)); return USART_ReceiveData(USART1);}3 . printf函数重映射int fputc(int ch, FILE *f){ USART_SendData(USART1,(uint8_t)ch); while (!USART_GetFlagStatus(USART1, USART_FLAG_TXE)); return (ch);}5、总结在进行USART的printf函数的使用时,一定要记得将微库打开:点击keil工具栏的小魔术棒符号,进入Target配置,勾选Use MicroLib。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32串口利用虚拟串口调试
解决*** error 30: undefined name of virtual register
问题
以下摘录于网络。
1. 利用VSPD将PC上的两个虚拟串口连接起来。
如图我将COM2 和COM3连接起来。
点击Addr pair。
2. 可以看到Virtual ports上将两个虚拟串口连接到了一起了。
3.虚拟串口准备就绪了。
先将直接输入命令的方式来调试。
我们打开KEIL MDK的,设置成仿真的模式。
点DEBUG.在COMMAND串口输入:
MODE COM2 38400, 0, 8, 1
说明:
MODE命令的作用是设置被绑定计算机串口的参数。
基本使用方式为:
MODE COMx baudrate, parity, databits, stopbits
其中:
COMx(x = 1,2,…)代表计算机的串口号;
baudrate代表串口的波特率;parity代表校验方式;
databits代表数据位长度;
stopbits代表停止位长度。
例如:MODE COM1 9600, n, 8, 1
设置串口1。
波特率为9 600,无校验位,8位数据,1位停止位。
MODE COM2 19200, 1, 8, 1
设置串口2。
波特率为19 200,奇校验,8位数据,1位停止位。
4、点回车后,再输入ASSIGN COM2 <S1IN> S1OUT
说明:
COMx代表计算机的串口,可以是COM1、COM2、COM3或其他;
inreg和outreg代表单片机的串口。
对于只有一个串口的普通单片机,即SIN和SOUT;对于有两个或者多个串口的单片机,即SnIN和SnOUT(n=0,1,…即单片机的串口号)。
例如:ASSIGN COM1 < SIN > SOUT
将计算机的串口1绑定到单片机的串口(针对只有一个串口的单片机)。
ASSIGN COM2 < SIN > SOUT
将计算机的串口2绑定到单片机的串口0(针对有多个串口的单片机,注意串口号的位置)。
需要注意的是,参数的括号是不能省略的,而outreg则是没有括号的。
5、然后调试程序。
可以看到串口COM3打印出了串口1的数据了。
以上摘录于网络。
本人使用串口COM4 COM5使用后发现
ASSIGN COM2 < SIN > SOUT
出错
*** error 30: undefined name of virtual register
设置调试模块参数如下:。