ucGUI中文教程(STM32实例非常详细)emWin教程
ucGUI、emWin中文教程,结合源码非常详细。《安富莱_STM32-V5开发板_STemWin教程》,包括模拟器、guibuilder使用等ARMFL武汉安富莱电子有限公司Www.ArmfLy.Com安富莱STM32-V5开发板 STemWin教程教程使用说明本教程配套的硬件开发平台是安富菜电子自主设计的STM32V5开发板。安富菜其他系列的STM32开发板也可以使用这个手册,我们的论坛www.armfly.con上有移植好的工程不过需要大量动态内存的例子是无法运行的。使用本教程前,请先按照第三章的教程进行触摸校准,将触摸参数保存到 EEPROM里面,后面所有的例子都会自动加载触摸参数。■基本涵盖了所有 STemWin知识点及其控件的使用,部分复杂的控件会在后期升级的教程中增加上去。完美解决 STemWin支持的BMP、JPG、GIF、PNG图片显示。完美解决 STemWin支持的字体显示,XBF、SIF、矢量字体显示。■教程中提供的 emWin的移植方法,可以完美支持各种显示屏,不受官方显示驱动限制。■所有的控件教程都有配套使用 GUIBulder5.22和u CGUIBulder40建立的例子。■大部分例子均支持在模拟器、MDK和IAR三个版本上面运行。STM32V5开发板相关资料地址:ahttp://bbs.armfly.com/readphp?tid=1139ahttp://bbs.armfly.com/readphp?tid=1285ahttp://bbs.armfly.com/read.php?tid=2103第3页共574页ARMFL武汉安富莱电子有限公司Www.ArmfLy.Com安富莱STM32-V5开发板 STemWin教程第1章 STemWin介绍本期教程开始带领大家了解-下 STemWin的基本知识,其实确切的讲应该叫eηwin基础知识,由于教程使用的开发板是ST的微控制器,所以就把名字统一命名成 STemWin(为什么叫 STemWin,在下面会有详细的讲解)。1.1 STemwin, emwin,μCGU之间的关系1.2 SEGGER公司介绍1.3 STemwin介绍14STM32F103和407跑 STemWin性能测试15 STemWin论坛16总结11 STemWin,emWn,μCGU之间的关系这个放在最开头进行说明,因为很多的初学者比较的迷惑对于一些刚学GUI的用户来说,知道μCGU的比较多,而不知道所谓的 emWin或者 STemWin。这个并不奇怪,主要是因为大部分人只知道 SEGGER公司的做的儿LINK,而不知道他们还有RTOS和相关的中间件(中间件的意思就是基于RTOS的文件系统,GUI,USB主机和设备协议栈等)。11.1卩CGU在国内比较火的原因μcGUI在国内前几年比较火的原因有三点●一个是μCOSI在国内的推广,自从 Micrum公司出的那本《嵌入式实时操作系统μCOSⅢ》发布之后,国內关于μCOSⅡ的资料就是普天盖起,再加上各种培训机构和开发板的推广,μCOSⅡ就在国内火起来了。μCOS火的同时,它配套的中间件,特别是μCGUI就跟着在国内火了起来●前几年国内有一个μCGUI的论坛,这个论坛在国内的μCGU方面应该算是做得最好的,特别是那个站长在μCGUI方面的研究,这位站长对于μCGUI在国内的发展功不可没●还有一个原因就是μCGU是带有源码的,很多时候可以通过修改部分的源码实现—些特殊的功能,现在网上流传的μCGUI的源码已经不知道经过多少人的手被修改过,最原始的的代码已经在官网上面找不到了。第4页共574页ARMFL武汉安富莱电子有限公司Www.ArmfLy.Com安富莱STM32-V5开发板 STemWin教程112 emwin和μCGU的关系首先要明白,这两个GUI是一个东西。最初这个GU就是 SEGGER公司的,然后以什么的方式授权给μcGUI就不清楚了。现在 SEGGER公司是这个GUI的主要推动者,已经将其授权给了多个芯片生产厂家。11.3 STemWin和emWn的关系STemWin是 SEGGER公司授权给ST(意法半导体)的。使用ST芯片的用户可以免费使用 STemWin其实不光授权给了ST,还有NXP, Energy micro等。凡是使用这些芯片厂商生产的处理器都可以免费的使用 emwin。但是出于一定的保护措施,使用 STemWin的库是不能用在其它芯片厂商的处理器上面的。因为在工程初始化 STemWin前要使能CRC校验。如果没有使能, STemWin是启动不起来的。 KEIL MDK的安装目录里面也带有 emwin软件包,这个软件包也不是可以直接使用的,用户需要给 KEIL MDK注册RL-ARM才可以使用。这里 STemWin还针对ST的微控制器做了专门的优化,比如在使用ST的F4XX微控制器带FPU的芯片时, STemWin在需要浮点处理的地方专门做了优化114 emWin5Xx版本和以前版本的不同emWin发展到50版本以后已经产生了很大的更新,特别是底层驱动方面。 emWin5xx版本向下完全的兼容低版本,当然包括μcGUI巧5ⅹX以下的版本,也就说如果用户有在μCGUI5×以下版本建立的工程完全可以用在高版本上面(条件是没有修改过源码)。这里不建议初学者修改源代码,修改过后会破坏现有的机制。在以后的使用中会养成不好的习惯,只要某些功能无法实现就去修改源码随着修改的增多会严重的破坏现有的机制。emwin5xX以后的版本只有库,没有源码。对于一些想研究源码的,可以看早期的版本,了解一下通讯机制。不过对于大多数从应用角度出发的,完全没有必要学习源码,源码内容太多。对于一些无法实现的功能,在 emWin5ⅹ上面得到了很大的改善,基本不需要修改源码。如果通过各种方法实在无法实现,完全可以使用 emWin支持的用户控件设计方法做一个符合要求的.12 SEGGER公司介绍SEGGER公司应该算是一家老牌的调试工具以及RTOS及中间件的生产商。 SEGGER公司成立于1997年,到现在的2014年,有差不多17年的历史了,这家公司主要有两个 office,一个是在德国的 Hilden,另个在美国的 Massachusetts。官网还有一个他们工作地方的照片,看着很不错,我这里也把这个照片贴第5页共574页ARMFL武汉安富莱电子有限公司Www.ArmfLy.Com安富莱STM32-V5开发板 STemWin教程国SEGGER公司的产品主要有三个方向,分别如下:121RToS及其中间件SEGGER公司的RTOS是 embos,在国内知道的人可能比较少。 SEGGER做的 embos和中间件都是以库的形式供用户下载的,除非购买了使用权。产品主要如下o embos(Real Time Operating System)embos/IP(TCP/IP Stack)o emWin(Graphic Software Gui)● em File( File System)emUSB Device(USB device Stack)e emUSB Host(USB Host stackemModbus( Modbus StackmoDbus是今年(2014年)刚刚发布的。第6页共574页ARMFL武汉安富莱电子有限公司Www.ArmfLy.Com安富莱STM32-V5开发板 STemWin教程122J-Link调试工具J-Link应该大家都不陌生,它是有 SEGGER公司设计的。具体的J-Link产品有好几款,具体如下●J- Link pro●J- Link ultra+●J- Link plus●J-Link●J- Trace Cortex-M3●J- Trace arm1.2.3 Production Programmers这个工具在国内用的比较少,主要如下几款产品:●F| asher armFlasher rx●F| asher stm8● Flasher st7● Flasher5● Flasher5PRo上面说的这三项应该算是SEGGER公司的主营产品,更详细的可以上面他们的官网www.segger.con进行了解。13 STemWin介绍emwin5X版本设计出来的界面还是非常漂亮的,先贴几个相关的设计图片,让大家有一些感官的认识131 STemWin设计界面●第一幅是官方设计的图片第7页共574页ARMFL武汉安富莱电子有限公司Www.ArmfLy.Com安富莱STM32-V5开发板 STemWin教程Coffee machineAirplane monitoring system666垂●Washing machineProcess automation40°C900Detergent40%3Dashboardx-Ray machineCEPHP114.1540整体来说,这些图片还是非常漂亮的,不过这些界面不是用专门的控件显示出来的,使用的2D绘图配合内存设备管理实现的。●下面的是在STM32V5开发板上面实现的界面总的来说这些界面还是非常漂亮的,关于STM32V5开发板更详细的资料可以看如下两个地址http://bbs.armfly.com/read.php?tid=1285http://bbs.armfly.com/read.php?tid=1139第8页共574页ARMFL武汉安富莱电子有限公司Www.ArmfLy.Com安富莱STM32-V5开发板 STemWin教程凹春Computer SettingsPictureletoonCameraClockFMAMamazonMPMP3RecorderensorTextUs日edioSignal201304303%177:28TueTask Manage▲进程性能实验目的优先级堆栈使用堆栈余堆栈分比CPU任务名字59869388%3. 70% App Task GUIRefresh60516358012%0. 30% App Task GUI10891610%0. 05% App Task UserIF749507%0.07% App Task COM829420. 00% App Task Update8219664%0. 00% App Task Start62636549%0. 01% uC/OS-III Timer Task62 6464 50% 0.47% uC/OS-III Stat Task646450%0. 83% uC/OS-III Tick Task63527640%94. 53% uC/OS-III Idle Task201343017:18:14Tue第9贪共574页ARMFL武汉安富莱电子有限公司Www.ArmfLy.Com安富莱STM32-V5开发板 STemWin教程File ManageFile Edit HelpOpen noneHardDiskUsed: 3MB Total: 126MBsed: 442MB Total: 1963MBUsed: 130MB Total: 7441MBCamera的oV7570&MT9D111OPEN USB HOSTOPEN USB HOSTCLOSE USB HOSTr OPEN USB DEVICE CLOSE USE DEVICEReady2013/43017:U7:49Tue132目标系统(硬件)目标系统必须具有:一个CPU(8/16/32/64位)一个具有最小内存的RAM和ROM一个完整图形显示器(任何类型和任何分辨率)存储器要求取决于使用的是软件的哪部分以及目枟编译器的效率。因此不可能指定精确的值,但是以下值适用于典型的系统。小系统(无窗口管理器)●RAM:100字节堆栈:600字节ROM:10-25kb(取决于所使用的功能)大系统(包含窗口管理器和小工具)RAM:2-6kb(取决于所需的窗口数)堆栈:1200-1800字节(取决于所使用的功能)ROM:30-60kb(取决于所使用的功能)请注意,如果应用程序使用了很多字体,则对ROM的要求会提高。上述所有值都是粗略估算值,不第10页共574页
- 2021-05-06下载
- 积分:1
SVPWM算法详解_已标注重点_
详细的讲解了SVPWM的过程,及其仿真,很适合初学者或(37)即磁链空间矢量可以等效为电压空间矢量的积分,如果能够控制电压空间矢量的轨迹为如式(3.4)所示的圆形矢量,那么磁链空间矢量的轨迹也为圆形。这样,电动机旋转磁场的轨迹问题就可以转化为电压空间矢量的运动轨迹问题。进一步分析,由式(3.3)(3.5)(3.7)可以得到公式(3.8)∫-+yy(38)对电压积分,利用等式两边相等的原则有(39)其中,v为电机磁链的幅值,即为理想磁链圆的半径。y当供电电源保持压频比不变时,磁链圆半径v是固定的。在 SVPWM控制技术中,是取以y为半径的磁链圆为基准圆的。32逆变器电压的输出模式图32给出了电压源型PWM逆变器—异步电动机示意图14。昇步电动机定子绕组YY图3.2PWM逆变器电路(1~6为GBT)对于180°导电型的逆变器来说,三个桥臂的六个开关器件共可以形成8种开关模式。用分别标记三个桥臂的状态,规定当上桥臂器件导通时桥臂状态为1,下桥臂导通时桥臂状态为0,这样逆变器的八种开关模式对应八个电压空间矢量,其中为直流侧电压在逆变器的八种开关模式中,有六种开关模式对应非零电压空间矢量,矢量的幅值为一;有两种开关模式对应的电压矢量幅值为零,称为零矢量。当零矢量作用于电机时不形成磁链矢量;而当非零矢量作用于电机时,会在电机中形成相应的磁链矢量。对于每一个电压空间矢量,可由图32求出各相的电压值,再将各相的电压值代入式(3.3),可以求得电压空间矢量的位置。下面以开关状态)=(、0、0)为例,即开关导通,其余关断。逆变电路的形式可以变为B相和C相并连后再和A相串连的形式,易得将其数值代入式(33),可得采用同样的方法可以得到如表31所示的逆变器空间电压矢量。表31逆变器的不同开关状态对应的空间矢量表相电压矢量表达式定子电压开关状态(Us大小为空间矢量A相B相C相0000000101001110010111100由于 SVPWM控制的是逆变器的开关状态,在实际分析逆变器一电动机系统时,可以通过分析逆变器输出的电压空间矢量来分析电机定子电压的空间矢量,下面给出证明。设逆变器输出的三相电压为、,由图3.2可求出加到电机定子上的相电压为(310)其中,为电机定子绕组星接时中点0相对于逆变器直流侧点的电位。电机定子电压空间矢量为(311)而由三角函数运算知++因此,逆变器输出的电压空间矢量为(312)由式(3.12)可知,在PWM逆变器一电动机系统中,对电机定子电压空间矢量的分析可以转化为对逆变器输出电压空间矢量的分析。这时,在求解表3.1时,可以直接利用逆变器输出的电压合成得到,即A,B,C三相输出电压值只有一和-—两个值。当逆变器输出某一电压空间矢量时,电机的磁链空间矢量可表示为y =y3.13)其中,W为初始磁链空间矢量;△为的作用时间。当为某一非零电压矢量时,磁链空间矢量y从初始位置出发,沿对应的电压空间矢量方向,以为半径进行旋转运动,当为一零电压矢量时,W=y,磁链空间矢量的运动受到抑制。因此合理地选择六个非零矢量的施加次序和作用时间,可使磁链空间矢量顺时针或逆时针旋转形成一定形状的磁链轨迹。在电机控制当中尽量使磁链轨迹逼近正多边形或圆形。同时,在两个非零矢量之间按照一定的原则,比如开关次数最少,插入一个或多个零矢量并合理选择零矢量的作用时间,就能调节ψ的运动速度。33SWPM的具体实现方法在实际应用中,应当利用 SVPWM自身的特点找到控制规律,避开复杂的数学在线运算,从而较为简单的实现开关控制,本节将给出实现 SVPWM的具体方法。根据3.2节中给出的不同开关状态组合可以得到如图33的电压空间矢量图C图3.3 SVPWM矢量、扇区图通常在矢量控制的系统当中,根据控制策略,进行适当的巫标变换,可以给出两相静止坐标系即(a,B)坐标系电压空间矢量的分量,g,这时就可以进行 SVPWM的控制,具体要做以下三部分的工作如何选择电压矢量。2.如何确定每个电压矢量作用的时间。3.确定每个电压矢量的作用顺序3.3.1电压空间矢量的空间位置这里需要引入扇区的概念,将整个平面分为六个扇区。如图3.3所示,每个扇区包含两个基本矢量,落在某个扇区的电压空间矢量将由扇区边界的两个基本电压空间矢量进行合成。在确定扇区时,引入三个决策变量A,B,C。根据给出的待合成的空间矢量的两个分量,p来决定A,B,C的取值,有以下关系式所在扇区的位置为当N取不同的值对应的扇区位置如图3.3所示,这样给定一个空间电压矢量就可以确定其所在的扇区。33.2电压空间矢量的合成扇区确定之后,就可以利用扇区边界上的两个基本矢量合成所需的矢量在合成过程中应当使得两个基本矢量的合成效果接近于期望矢量的效果。于是采用伏秒平衡的原则,以图3.3所示的第Ⅲ扇区为例,以a尸轴为基准,将两个基本矢量向aB轴上投影,应当有轴:=||+尸轴其中,为对应电压矢量作用的时间(=),为采样周期,通常为PW的调制周期。且|=||=-。求解上面两式可以得到这两个基本矢量的作用时间如式3.14(314)通过上面的方法即可以确定基本矢量的作用时间,当需要合成的矢量位于各个不同的扇区时都存在如上的运算。通过对每个扇区基本矢量动作时间的求解不难发现它们都是一些基本时间的组合。所以给出几个基本的时间变量x,Y,Z。定义√(315)通过计算可以得到在每个扇区内的基本矢量动作时间,(由于五段和七段式的实现方法不同,所以这里没有考虑矢量的动作顺序,仅按照逆时针方向)。设每个刷区的两个基本矢量动作的时间为于是可以得到矢量动作时间表3,2表3.2的对应关系表扇区ⅣV在实际的应用中当给定的电压值太大时会出现过调制的情况,即+>。此情况出现时,还要对上述计算出来的电压矢量的作用时间进行调整,具体方法如式3.16所示。(316)即为调整后的动作时间。在一个P啊M周期内除了非零电压矢量的作用,还要有零电压矢量的作用,零电压矢量包括对于这两个矢量的作用时间,以及开关的动作顺序,取决于采用的SPwM是五段式还是七段式,3.3节将对这两种PWM形式进行详细的介绍3.4 SVPWM的硬件实现和软件实现TI公司的TM320LF2407A系列的DSP内部有硬件来实现 SVPWM,由于每个PWM周期被分为五段,因此也被称为五段式的 SVPWM。在每个PWM调制周期内,开关状态有五种,且关于周期中心对称。而七段式的SvPM在每个PWM调制周期内有七种开关状态,需要运用软件进行实现,因此也被称为 SVPWM的软件实现。需要注意的是,无论哪种方法,所遵循的基本原则是开关动作次数最少,每个开关在一个周期内最多动作两次。3.4.1五段式 SVPWM对于五段式的 SVPWM,只在PMM周期的中间插入零矢量,具体采用哪一个由硬件根据旋转方向和开关动作次数最少的原则自行决定。例如在第Ⅲ扇区内,如果旋转方向为逆时针时针,则先动作,后动作以此类推,动作时间可以直接采用表3.2中的数据即可,然后选择零矢量(硬件决定)即可使开关次数最少。对于五段式PWM而言,零矢量作用的时间可以表示为:根据上述的配置原则,在每个扇区内开关动作的示意图如图34所示202ⅣV/1Ⅵ图34每个扇区内的开关动作示意图每个TMS320LF2407A的事件管理器EV模块都具有十分简化的电压空间矢量PWM波形产生的硬件电路。编程时只需进行如下的配置2●设置 ACTRX寄存器用来定义比较输出引脚的输出方式,决定高电平还是低电平有效,正反转,所在扇区等。●设置COMC0Nx寄存器来使能比较操作和空间矢量PWM方式,并且把 CMPRX的重装条件设置为下溢●将通用定时器1或2,4或5设置成连续增/诚计数模式,并启动定时器。然后给据在两相静止(a6)坐标系下输入到电机的电压空间矢量,分解为,确定如下的参数●所期望的矢量所在的扇区。根据 SVPWM的调制周期计算出两个基本的空间矢量和零矢量作用的时间
- 2020-12-06下载
- 积分:1