1、基于Proteus的STM32嵌入式虚拟实验平台设计欧建开杨吟野岑伟富姚冰吕林:本文选用目前市场上使用最多的通用ARM嵌入式芯片STM32F103C6为核心部件,利用Proteus虚拟仿真软件和KeilMDK集成开发环境搭建了基于该芯片的嵌入式虚拟实验平台,并通过串口通信实验介绍了在该实验平台下进行的硬件电路设计和软件编写等过程。关键词STM32 嵌入式 虚拟实验1 引言随着嵌入式技术不断开展及广泛应用,市场对人才的需求日趋显著,而在新工科背景下,高校承当着多层次技术、复合型人才及拔尖创新人才培养的重要使命,因此嵌入式技术的多学科融合教学是当前高校在电子信息技术专业的重要课程之一。与其他课程相
2、比,嵌入式技术课程的特殊性在于其是一门软硬件结合且注重实践训练的课程,其是以数字电路技术、模拟电路技术、可编程控制器等课程作为根底的多课程融合实训工程,对于学生而言,不仅需要过硬的硬件电路设计和制作能力,对控制器编程语言和编程方法的掌握程度同样显得十分重要。根据目前多数高校情况分析,在嵌入式技术课程的教学上取得的成果并未到达较理想的效果。其主要由于以下几个方面:实验室根底建设缺乏:虽然多数高校都已建设了满足一定教学能力和教学功能的嵌入式实验室,但是由于资金和教学资源的投入欠缺,导致所建嵌入式实验室的实验设备和相关测试仪器数量短缺,实验教学工程种类缺乏,师资力量欠缺等问题。导致了学生在实践教学阶
3、段出现“流水式教学,特别对于那些电子专业生源较为丰富的地方院校来说,这种根底硬件缺乏所带来的问题更为显著,从而使得教学质量无法得到有效提高。与市场技术需求脱节:由于高校实验室服役周期长,教学设备更新过慢,而目前市场上嵌入式芯片更新较快,一般在8个月左右,新嵌入式芯片的推出必然会带来新的开发工具和实验设备,这就使得多数高校对人才的培养与市场需求脱节。例如,目前市场上使用的嵌入式产品使用的芯片主要以ARM为主,其应用最广的为ARMv7架构的Cortex-M系列芯片。然而,目前很多高校的嵌入式课程教授的内容还是以较为老旧的ARMv5架构的ARM7系列芯片为主,实验设备大多也停留在了ARM7时代。高校
4、的教学与市场需求完全脱节,学生进入企业后还得重新培训学习,这无疑增加了企业的负担。嵌入式教学需要与时俱进,以市场为导向,不断在教学中引入新技术、新方案,培养市场需要且能用的人才。基于上述问题,考虑到传统实验教学周期长、教学导向性欠缺及教学技术输出与社会脱节问题,因此,本文讨论了一种基于Proteus的STM32嵌入式虚拟实验平台设计方案。2 虚拟实验平台建设探讨虚拟仿真技术是计算机科学不断开展所衍射一种分析手段,其主要以计算机为硬件设施,构建一个与实际实验环境相近似的虚拟实验环境。其优点在于实验过程除使用计算机外,不需其它实验设备,因此,实验设置时不受设备更新快、师资缺乏、实验耗材费用等问题影
5、响。同时虚拟仿真不受时间和空间限制,学生不需在实验室也能完成实验仿真训练,且能根据实验对象需求进行扩展。本文将以贵州民族大学嵌入式教学为例。2.1 仿真對象选取及探讨我校实验教学选用了STM32F103系列嵌入式芯片,由意法半导体公司推出,内核为ARMCortex-M3,因其具有高性能、低本钱、低功耗等优点广泛运用于各高校实验教学中。至该系列芯片推出后,不仅成为了目前市场上最为畅销的ARMCortex-M系列嵌入式芯片,同时也成为了嵌入式初学者的入门首选。本论文实例中选择了STM32F103系列中STM32F103C6芯片,其可用Proteus仿真软件进行仿真设计。此外,该芯片最高工作频率高达
6、72MHz,拥有32KROM、10KRAM、通用IO口37个、USB接口、12位ADC、I2C接口、SPI接口、UART接口等内部外设。2.2 软件选取及介绍仿真工具选用英国Lab Center Electronics公司推出的Proteus电路仿真软件。目前仅该软件支持STM32系列芯片的虚拟仿真,该软件不仅具有示波器、信号发生器、电压表、电流变等多种嵌入式实验所需的虚拟仪表,还具有各种常用虚拟电子元件,因此可使用这些虚拟仪表和虚拟电子元件能搭建出各种嵌入式实验所需的电路。集成开发环境选择ARM旗下Keil公司的MDK开发工具,该软件界面友善、操作简单且编译效率高,还支持ARM公司最新的Co
7、rtex-M3/M1/M0内核微处理器,自带软件调试、Flash烧写和启动代码配置等功能,在国内深受广阔嵌入式开发人员青睐。2.3 应用实例设计及分析2.3.1 实验设置及分析实验设计流程图如图1所示,本实验以实验难度较为适中的串口通信实验为例,介绍在该嵌入式虚拟实验平台上进行实验的过程。实验输入为实现STM32F103C6串口1的数据收发功能,当串口1接受到数据后,对数据进行加1处理后通过串口1发送回去。实验要求:1参数要求波特率9600、8位数据位、1位停止位;2根据实验内容在Proteus电路仿真软件上自行设计电路;3使用KeilMDK软件编写程序并进行编译后导入Proteus;4运行P
8、roteus进行仿真并观察记录实验结果。2.3.2 硬件电路设计根据实验要求分析得出该实验仅用到STM32F103C6串口,本实验电路只需在Proteus软件上搭建STM32F103C6最小系统包括复位电路和震荡电路,通过使用Proteus自带的串口调试工具Virtual Terminal连接STM32F103C6的串口,实验电路如图2所示。2.3.3 程序编写及实验分析根据实验输入及要求,程序涉及到对串口和GPIO端口初始化以及串口中断处理,具体程序流程图如图3所示。使用KeilMDK软件创立工程,根据程序流程图编写对应代码,并编译生成HEX文件。以下为主要代码:intmainvoidGPI
9、O_InitTypeDefGPIO_InitStructure;USART_InitTypeDefUSART_InitStructure;RCC_APB2PeriphClockCmdRCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE;/x翻开GPIOA和USART1时钟x/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Ini
10、tGPIOA,&GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIOMode=GPIO_Mode_INFLOATING;GPIO_InitStructure.GPIOSpeed=GPIO_Speed50MHz;GPIO_InitGPIOA,&GPIO_InitStructure;USART_InitStructure.USARTBaudRate=9600;/串口參数设置USART_InitStructure.USART_WordLength=USART_WordLength_8b;U
11、SART_InitStructure.USARTStopBits=USART_StopBits_1;USART_InitStructure.USARTParity=USARTParity_No;USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;USART_InitUSART1,&USART_InitStructure;/串口初始化USART_ITConfigUSART1,USART_IT_RXNE,ENABLE;/使能串口1接收中断USART_CmdUSART1,ENABLE;使能串口1while1voidUSART1_IRQ
12、Handlervoid/串口1中断程序ifSET=USART_GetF1agStatusUSART1,USART_FLAG_RXNEUSARTClearITPendingBitUSART1,USART_IT_RXNE;USARTSendDataUSART1,USARTReceiveDataUSART1+1;/串口1发送数据将HEX文件导入Proteus上的STM32F103C6芯片,启动Proteus仿真软件,使用已与STM32F103C6连接好的VirtualTerminal串口调试工具,向STM32F103C6发送0x30、0x31、0x32的数据后STM32F103C6会通过串口返回0x
13、31、0x32、0x33数据,返回的数据证明实验结果符合实验要求,仿真结果如图4所示。3 结论本文选用Proteus和KeilMDK作为软件平台,STM32F103C6芯片作为仿真对象搭建嵌入式虚拟仿真平台进行实验,该平台的应用有助于解决嵌入式实验室根底建设缺乏、与市场技术需求脱节等问题。同时该嵌入式虚拟实验平台的建设还能对电子类实验虚拟化提供一定借鉴意义。参考文献1陈明。嵌入式应用类课程实践教学改革研究J.才智,202308:5.2林王兵,王刚,刘磊,应用型本科高校嵌入式实验室建设探索J.电子世界,202315:82-83.3胡德鹏。嵌入式系统技术开展趋势探析J.数字技术与应用,2023,3610:233-234.4董梅,意法半导体STM32MCU十年间全球出货量超过30亿颗,下一步的愿景是什么?J.世界电子元器件,202311:26-29.5高克芳.Proteus在嵌入式系统实践教学的应用J上饶师范学院学报,2023,3503:10-12.6Kei1支持STM32互联系列J.电子技术应用,2023,3509:164.