STM32单片机仿真开发实例 课件 第5篇 拓展篇_第1页
STM32单片机仿真开发实例 课件 第5篇 拓展篇_第2页
STM32单片机仿真开发实例 课件 第5篇 拓展篇_第3页
STM32单片机仿真开发实例 课件 第5篇 拓展篇_第4页
STM32单片机仿真开发实例 课件 第5篇 拓展篇_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.1LCD1602显示器的使用能力目标:

掌握LCD1602显示器的驱动方法,能编写简单的LCD1602驱动程序。任务要求:仿真电路如图所示,要求在屏幕第一行显示“Helloworld!”。5.1.1液晶显示屏与LCD1602为了能够显示更加丰富的信息,单片机电路设计中往往会使用到液晶显示屏。这里我们为大家介绍一种极具性价比的单色液晶显示屏——LCD1602,如图所示。这种液晶显示屏能够显示2行、16字符/行,共计32个5×7或者5×11的点阵字符,目前市面上大多数LCD1602显示屏都是采用了HD44780液晶显示芯片,当然无论采用了哪种液晶显示芯片,操作方式大同小异。(1)LCD1602的引脚定义LCD1602采用标准的16脚接口,详见表。引脚编号功能说明1VSS接电源负极2VDD电源正极(+5V/+3.3V)3VEE液晶显示器对比度调节引脚,电压越接近于VDD则对比度越低,相反电压越接近于VSS(0)则对比度越高。4RS(RegisterSelect)寄存器选择引脚,高电平时选择数据寄存器,低电平时选择指令寄存器。5RW(Read/Write)读/写信号引脚,高电平时进行读操作,低电平时进行写操作。6E(Enable)使能引脚,高电平时读取信息,下降沿时执行指令。7~14D0~D78位数据总线,D0为最低位,D7为最高位。15ALCD背光源正极16KLCD背光源负极(2)LCD1602的存储器LCD1602内置DDRAM(DisplayDataRAM,显示数据随机存储器)、CGRAM(CharacterGeneratorRAM,字符发生随机存储器)和CGROM(CharacterGeneratorROM,字符发生只读存储器)。其中DDRAM用于指定显示字符的位置,只需将需要显示的字符送至相应的DDRAM地址即可在屏幕上显示,详见下表。显示位置123456…1516DDRAM地址第一行80H81H82H83H84H85H…8EH8FH第二行C0HC1HC2HC3HC4HC5H…CEHCFHCGRAM用于由用户自定义字模,而CGROM则已经内置了160个常用字模,包括ASCII码、日文假名和希腊字母。由于本书只涉及到ASCII码的显示,具体编写程序的时候无须了解CGRAM和CGROM的知识,因此本节不作过多的介绍。(3)LCD1602的控制指令LCD1602共有11条控制指令,如表所示。序号指令RSRWD7D6D5D4D3D2D1D01复位00000000012光标归位000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标/字符移位000001S/CR/L**6置功能00001DLNF**7置CGRAM地址0001CGRAM地址8置DDRAM地址001DDRAM地址9忙标志/地址计数器01BF由最后写入的DDRAM或CGRAM设置指令设置的DDRAM/CGRAM地址10CGRAM/DDRAM写数据10写入1个字节的数据11CGRAM/DDRAM读数据11读取1个字节的数据●指令1:显示屏复位指令,清除显示屏所有显示字符,并且光标回到第一行第一个字符位置;●指令2:光标归位指令,光标回到第一行第一个字符位置;●指令3:置输入模式指令,其中I/D位为光标移动方向,0表示左移,1表示右移,S位为所有字符是否左移或者右移,0表示否,1表示是;●指令4:显示开/管控制指令,其中D位控制所有字符是否显示,0表示关显示,1表示开显示,C位控制光标是否显示,0表示关显示,1表示开显示,B位控制光标是否闪烁,0表示不闪烁,1表示闪烁;●指令5:光标和字符移位指令,位S/C为光标和字符移位控制位,0表示仅光标移动,1表示光标和字符都移动,位R/L为移动方向控制位,0表示左移,1表示右移;●指令6:功能设置指令,位DL为总线模式控制位,0表示8位总线模式,1表示4位总线模式,N为显示行数控制位,0表示单行显示,1表示双行显示,F为字符点阵模式控制位,0表示5×7点阵字符,1表示5×11点阵字符;●指令7:CGRAM地址设置指令,设置6位的CGRAM地址以读写数据;●指令8:DDRAM地址设置指令,设置7位的DDRAM地址以读写数据;●指令9:读忙信号与地址计数器返回值指令,BF返回液晶屏当前状态,返回0时表示液晶屏正忙,返回1时表示液晶屏就绪可以进一步操作,D6~D0共计7位为读取的地址计数器的内容;●指令10:CGRAM/DDRAM写数据指令,用于向CGRAM写入用户自定义字模,或者用于向指定DDRAM地址写入显示字符从而在液晶屏相应位置进行显示;●指令11:CGRAM/DDRAM读数据指令,读取CGRAM或者DDRAM中的数据。5.1.2任务程序的编写本次任务用到的GPIO引脚比较多,为避免混淆不妨给每个GPIO引脚添加用户标签(UserLabel)。考虑到代码的可移植性,这里将LCD1602相关的功能代码全部封装成函数并归入头文件“LCD1602.h”,然后在主文件“main.c”中进行调用。(现场操作演示…)技能训练:

修改程序,在液晶屏第二行以0.5秒周期循环递增显示0~99。Tobecontinued...5.2串行E2PROMAT24C02的使用能力目标:

在了解I2C总线通信规则的基础上,掌握读写E2PROM芯片AT24C02一个字节的使用方法,并能编写相应的STM32程序。任务要求:仿真电路如图所示,STM32单片机能将由串口收到的1个字节数据存入到AT24C02的首地址;按下按钮BTN1,单片机将存储在AT24C02首地址的1个字节数据通过串口发送。串口通信参数是波特率19200bps、无校验。5.3.1I2C总线简介(1)概述I2C(Inter-IntegratedCircuit)总线是目前主流的芯片间总线接口技术之一。I2C总线属于多主总线,每一个节点都可以设定唯一的地址,I2C总线连接示意图如图所示。向总线发送数据的设备作为发送器,而从总线接收数据的设备则作为接收器,通过冲突检测和仲裁可以防止总线上数据传输发生错误。目前I2C总线具有三种传输速率,①标准模式(1980年提出)为100kbps、②快速模式(1992年提出)为400kbps、③高速模式(1998年提出,并与2001年修订)可达3.4Mbps。I2C总线只有①时钟信号线SCL与②双向数据线SDA两根,如上图所示,SCL与SDA被上拉至电源VCC,也就是说I2C总线处于“空闲”状态时SCL、SDA均为高电平。(2)通信时序I2C通信时序分为发送器启动/停止通信、数据位传送、接收器返回响应信号三种。①发送器启动/停止通信(a)启动通信(b)停止通信②数据位传送在SCL处于高电平期间,SDA必须保持稳定,SDA低电平表示数据0、高电平表示数据1,只有在SCL处于低电平期间,SDA才能改变电平状态。③接收器返回响应信号数据发送器可以连续发送多个字节数据,但是每发送一个字节(8个位)数据,数据接收器必须返回一位响应信号。响应信号位若为低电平则规定为应答响应位(简称ACK),表示数据接收器接收该字节数据成功;响应信号位若为高电平则规定为非应答响应位(简称NACK),表示数据接收器接收该字节数据失败。如果数据接收器是主机,则在它收到最后一个字节数据后,返回一个非应答位,通知数据发送器结束数据发送,接着主机向总线发送一个停止通信信号结束通信过程。5.3.2AT24C02简介(1)芯片概述AT24Cxx是美国Atmel公司出品的串行E2PROM系列芯片,xx表示不同的容量。比如本次任务用到的AT24C02,表示其总容量为2KBits(256Bytes)。AT24C02的工作电压范围为1.8V~6.0V,能适应目前市面上主流的3.3V和5.0V工作电压的单片机。值得注意的是,工作电压越高,相应的工作频率也越高,典型工作电压3.3V和5.0V对应的工作频率分别是标准模式100kHz和快速模式400kHz。8个引脚的功能如下表。其中,引脚1~3参与构成AT24C02在I2C总线上的地址。地址高四位固定1010B,低四位最低位在总线“写”命令中固定为0,在总线“读”命令中固定位1,余下三位就由引脚1~3的电平决定。换言之,同一条I2C总线上,最多只能挂载8个AT24C02。引脚序号名称功能引脚序号名称功能8VCC电源正极5SDA双向数据线4GND电源负极1A0地址线(低位)7WP空引脚2A1地址线(中间位)6SCL时钟输入线3A2地址线(高位)(2)芯片的读写时序AT24C02的读写方式有:①写入字节(ByteWrite)、②写入页(PageWrite)、③读当前地址(CurrentAddressRead)、④随机读取(RandomRead)和⑤连续读取(SequentialRead)五种方式。这里仅介绍写入字节和随机读取两种。①写入字节时序写入字节即向AT24C02写入一个字节。②随机读取时序5.3.3任务程序的编写STM32F103R6本身自带一个I2C通信模块,但是在实际应用中也有一部分工程师会选择使用GPIO引脚模拟I2C的时序,这样做的好处是程序代码便于在不同的处理器上进行移植。工程图形化配置中,GPIO引脚的分配如图5-12所示,用PB6、PB7分别模拟I2C总线的时钟线SCL、数据线SDA。程序采用典型的模块化设计方式,将I2C总线时序模拟和AT24C02操作代码分别写在“vI2C.h”、“AT24C02.h”两个头文件中。

(现场操作演示…)技能训练(选做):

将原图中AT24C02的地址线A0、A1、A2分别接到高电平,重新完成本次任务。Tobecontinued...5.3串行OLED显示器的使用能力目标:

在了解I2C总线通信规则的基础上,掌握使用OLED显示器显示常用字符的方法,并能编写相应的STM32程序。任务要求:仿真电路如图所示,要求在屏幕第一行显示“Helloworld!”,在屏幕第二行显示一个动态循环递增的二位十进制数字0~99,数字变化的时间间隔为0.5秒。5.3.1OLED显示器简介(1)OLED技术概述OLED(OrganicLight-EmittingDiode,有机发光二极管),顾名思义,其本质上是一种特殊的发光二极管,是一种利用多层有机薄膜结构产生电致发光的器件。与LCD显示器相比,OLED显示器技术更加新颖,具备外形轻薄、亮度高、功耗低、响应快、清晰度高、柔性好、发光效率高等优点,目前在手机屏幕、计算机显示器、游戏掌机屏幕等领域均有广泛应用。(2)OLED12864显示器OLED12864是一种单色显示的小尺寸显示器,屏幕尺寸仅0.96吋,具有128×64的分辨率,其正面(左)与反面(右)的照片分别如下图所示。OLED12864采用3.3~5V宽电压供电,适用于包括MCS-51、STM32在内的各种主流单片机。OLED12864可视角度能达到160°,因为OLED12864从本质上来说是一种高密度发光二极管点阵显示器,所以不需要背光设计,仅靠点阵自身发光即可满足显示需求。(3)显示驱动方式

OLED12864采用SSD1306进行驱动,支持8位6800/8080串并联接口、I2C与SPI串行接口,本教材仅介绍其中的I2C通信方式。显示器在出厂的时候仅预留了I2C通信接口的4个引脚——电源正极VCC、电源负极GND、时钟引脚SCL、数据引脚SDA。

SSD1306内置GDDRAM(GraphicDisplayDataRAM,图形显示数据RAM),其结构如下图所示,分为8个页(PAGE0~PAGE7),每页128个字节(SEG0~SEG127),共计128*64bits,每个bit与OLED屏的像素一一对应,需要OLED屏哪个像素点发光,则向对应的GDDRAM位中写入1即可,反之写入0。

在I2C通信模式下,由单片机作为通信主机与作为从机的SSD1306通信数据包结构如下图所示。

主机单向发送数据包给从机即可实现单片机对OLED显示器的控制,该过程无需从机响应。表格1:SSD1306命令字节——基本命令(D/C#=0,R/W#(WR#)=0,E(RD#=1)除非有特殊说明,所有命令表均适用)序号HEX命令描述181HA[5:0]设置对比度双字节命令,第一个字节为命令,第二个字节为参数,通过低六位设定,缺省值7FH。(后面还有若干双字节命令,不再赘述。)2A6H/A7H设置正常/逆显示A6H:正常显示(缺省);A7H:逆显示。3AEH/AFH设置显示关/开AEH:关显示(缺省);AFH:正常显示。表格2:SSD1306命令字节——寻址设置命令序号HEX命令描述100H~0FH设置页面寻址方式的列起始地址(低四位)设置列起始地址的低四位,使用低四位进行设定,复位值0000B。210H~1FH设置页面寻址方式的列起始地址(高四位)设置列起始地址的高四位,使用低四位进行设定,复位值0000B。3B0H~B7H设置页面寻址方式的起始页地址使用低三位设置GDDRAM页面的起始地址(PAGE0~PAGE7)。表格3:SSD1306命令字节——硬件配置命令序号HEX命令描述140H~7FH设置显示起始行设置显示起始行0~63,D6位固定为1,通过低六位设定[5:0],复位值000000B。2A0H/A1H设置段重映射A0H:列地址0映射到SEG0(缺省);A1H:列地址127映射到SEG0。3A8HA[5:0]设置复用率第二个字节为参数,若参数取值N,则比例为N+1(比如,参数设定63D,比例即为64D),比例范围16~64,即参数取值0FH~3FH(复位值)。此命令用于将默认的64复用率更改至任何范围为16~64的值,COM0~COM63输出将切换到设定的输出信号。4C0H/C8H设置COM输出扫描方向C0H:正向扫描,从COM0向COM[N-1]扫描(缺省);C8H:反向扫描,从COM[N-1]向COM0扫描。N即为上一条指令中的复用率。此指令一旦执行,屏幕将会立刻垂直翻转。5D3HA[5:0]设置显示偏移第二个字节用于设置屏幕起始行,通常设置为00H,即无偏移。此指令用于设置列信号引脚配置来适应OLED面板的硬件布局。6DAHA[5:4]设置COM引脚硬件配置A[4]=0,顺序COM脚配置;A[4]=1,可变COM脚配置(缺省);A[5]=0,禁用COM左右重映射(缺省);A[5]=1,启用COM左右重映射。表格4:SSD1306命令字节——时间和驱动方案设置命令序号HEX命令描述1D5HA[7:0]设置显示时钟分频系数与振荡频率A[3:0],分频系数=A[3:0]+1,复位值0000B,分频系数即为1;A[7:4],振荡频率为0000B~1111B,缺省值1000B(即8MHz)。2D9HA[7:0]预充电周期(包括放电周期)[3:0],放电周期,取值0001B~1111B,缺省2H;[7:4],预充电周期,取值0001B~1111B,缺省2H3DBHA[6:4]设置VCOMH取消选定电平A[6:4]HEX数值VCOMH取消选定电平000B00H~0.65×VCC010B20H~0.77×VCC(缺省)011B30H~0.83×VCC表格5:SSD1306命令字节——电荷泵命令序号HEX命令描述18DHA[7:0]电荷泵设置8DH:电荷泵设置14H:使能电荷泵AFH:开显示(4)显示字符的设计

OLED12864是一种高密度发光二极管点阵显示器,理论上可以显示任何字符与图案,可以手动编辑显示数据用于记录显示器各个坐标点的亮灭状态,但实际上人们常常会借助于专门的取字模软件来建立显示数组,比如PCtoLCD2002。

打开PCtoLCD2002并新建一个8×16的图案,如右图所示。

不妨以上述“P”字点阵数据为例,我们不妨采用画格子的方式来还原这组数据代表的含义,“1”用黑色填充表示,“0”则用空白表示,如下图所示,左图是原始数据点阵图,右图是分割、拼接、旋转之后的点阵图。5.3.2任务程序的编写

(现场操作演示…)技能训练(选做):

修改任务“4.9RTC的时钟设计”,将时间显示由串口输出改为OLED显示。Tobecontinued...5.4串行温度传感器TC72的使用江苏信息职业技术学院智能工程学院能力目标:

在了解SPI总线通信规则的基础上,掌握读写温度传感器芯片TC72读写数据的方法,并能编写相应的STM32程序。任务要求:仿真电路如图所示,单片机每隔1秒钟读取一次温度传感器TC72的温度值,并通过串口将读取的温度值发送出去。串口通信参数:19200-N-1。5.4.1SPI总线简介(1)SPI总线概述

SPI(SerialPeripheralInterface,串行外设接口)是美国Motorola公司推出的一种同步串行通信接口,用于微处理器与外围芯片之间的串行连接。SPI目前已成为一种工业标准,世界各大半导体公司均推出带有SPI接口的微处理器与外围器件。SPI采用主从式通信模式,通常为一主多从结构,通信时钟由主机控制,在时钟信号的作用下,数据先传送高位,再传送低位。Motorola公司没有规定SPI协议的通信速度,因此通信速度应根据实际项目中主机和从机的通信能力而定。(2)接口定义SPI通信至少需要4根线:●SCLK,时钟线,用于提供通信所需的时钟基准信号;●MOSI,主出从入数据线,对于主机而言作为数据输出总线,对于从机而言作为数据输入总线;●MISO,主入从出数据线,对于主机而言作为数据输入总线,对于从机而言作为数据输出总线;●,片选信号,低电平有效。但本次任务涉及的TC72例外,有效电平为高电平。如图所示为一主多从SPI总线硬件连接示意图。(3)通信时序SPI通信的工作时序有四种,如所示,具体由CPHA(ClockPhase,时钟相位)和CPOL(ClockPolarity,时钟极性)决定。CPHA=0时的SPI工作时序CPHA=1时的SPI工作时序CPHA和CPOL的作用为:●CPHA,CPHA=0时,信号采样时刻为两个空闲状态之间的第一个边沿;CPHA=1时,信号采样时刻为两个空闲状态之间的第二个边沿。●CPOL,CPOL=0时,时钟信号SCK空闲为低电平;CPOL=1时,时钟信号SCK空闲为高电平。因此,SPI的四种通信模式总结如下表所示。通信模式CPHACPOL说明MODE000SCK空闲为低电平,上升沿时刻采样MODE110SCK空闲为低电平,下降沿时刻采样MODE201SCK空闲为高电平,下降沿时刻采样MODE311SCK空闲为高电平,上升沿时刻采样5.4.2TC72简介TC72是美国MicroChip公司出品的串行温度传感芯片,兼容SPI接口,温度测量范围为-55~+125℃,分辨率为10位(0.25℃/Bit)。TC72的工作电压为2.65~5.5V,能适应目前市面上主流的3.3V和5.0V工作电压的单片机。TC72芯片引脚排序及实物如下图所示。8个引脚的功能分别如下表所示。引脚序号名称功能引脚序号名称功能8VDD电源正极6SDI数据输入线4GND电源负极5SDO数据输出线2CE片选线(高电平有效)1NC空引脚3SCK时钟输入线7NC空引脚TC72的工作模式有:●连续转换模式(ContinuousConversionMode),每隔约150毫秒进行一次温度转换;●单次转换模式(One-ShotMode),转换一次后就进入省电模式。TC72的寄存器格式如下表所示。TC72的温度值转换结果采用左对齐数据存储格式,高字节存放温度值的整数部分,最高位T9为符号位,低字节高两位存放温度值的小数部分,数据以补码形式存放。寄存器读地址写地址B7B6B5B4B3B2B1B0控制0x000x80000单次010关断温度LSB0x01N/AT1T0000000温度MSB0x02N/AT9T8T7T6T5T4T3T2制造商ID0x03N/A010101005.4.3任务程序的编写STM32F103R6本身自带一个SPI通信模块,但是在实际应用中也有一部分工程师会选择使用GPIO引脚模拟SPI的时序,这样做的好处是程序代码便于在不同的处理器上进行移植,这一点与上一个任务中学习的I2C类似。首先是工程的图形化配置,如右图所示。然后设定串口USART1,一键生成初始化代码后进入编程界面接着完成代码的编写。(现场操作演示…)技能训练(选做):

将TC72单次转换修改为连续转换,比较其转换效果有何不同。Tobecontinued...5.5串行DACMCP4921的使用能力目标:

掌握控制DAC芯片MCP4921输出电压的方法,并能编写相应的STM32程序。任务要求:仿真电路如下图所示,单片机控制MCP4921以1秒周期输出正弦波,正弦波波动范围0~3.3V。5.5.1MCP4921简介单片机控制系统中,有时会涉及到一些需要通过模拟量信号控制的执行器(比如变频器、电动阀门等),这就需要用到数模转换器(DigitaltoAnalogConverter,简称DAC),单片机将计算得到的数字量控制信号通过DAC转换成模拟量信号后控制执行器做出相应的动作。本次任务选择了独立的DAC芯片,其型号是MCP4921,如下图所示。MCP4921是美国MicroChip公司出品的串行12位DAC芯片,兼容SPI接口,最大通信频率20MHz,一次转换时间4.5μs,工作电压2.7~5.5V,能适应目前市面上主流的3.3V和5.0V工作电压的单片机。8个引脚的功能分别如下表所示。MCP4921只有数据输入,没有数据输出,单片机仅需将12位数字量连同4位配置信息一共16位数据一起打包发送给DAC,DAC随即开始数模转换过程,通信数据格式如表所示。

(表格往后翻页→)引脚序号名称功能引脚序号名称功能1VDD电源正极2片选线(低电平有效)7VSS电源负极3SCK时钟输入线6VREF参考电压4SDI数据输入线5同步输入控制8VOUT模拟量电压输出正极每一个配置位的含义如下:●,该位只能选0,因为MCP49xx系列DAC中有些型号具有两个DAC通道,通过0或1选择通道A或B,但MCP4921仅有A通道;●BUF,VREF输入缓冲器控制位,设1时缓冲,设0时未缓冲;●,输出增益选择位,设1时无增益,设0时两倍增益;●,待机模式设置位,设1时不进入待机模式,设0时进入待机模式。高字节MSB低字节LSB配置位数据位BUFB11B10B9B8B7B6B5B4B3B2B1B05.5.2任务程序的编制MCP4921是一个12位DAC,因此输入数字量的范围是0x000~0x3FF,输出模拟量电压范围从0~VREF,即无法输出负电压。为了输出完整的正弦曲线,不妨将正弦波曲线沿纵轴(电压/数字量)正向移动,确保波谷也位于横轴(时间)上方。

正弦波计算公式:

为了提高单片机CPU的执行效率,此处使用查表法,在1秒内,每隔0.02秒计算一次采样值,可以利用excel进行计算,如图。

计算结果如图。与任务5.4相同,分别将单片机的PA4、PA5、PA7设为片选线、时钟线、MOSI线,引脚设定参数可参照任务5.4,由于MCP4921没有SDO引脚,因此不需要使用单片机的PA6引脚。(现场操作演示…)技能训练:

尝试输出不同的曲线,比如锯齿波、三角波等。Tobecontinued...5.6直流电动机的控制能力目标:

理解H桥电路的工作原理,掌握H桥芯片L298的使用方法,并能编写基于L298的直流电动机的STM32驱动程序。任务要求:仿真电路如图所示,要求通过五只按钮控制直流电动机的运行状态,五只按钮的作用分别是:电动机正转、电动机反转、电动机停止、电动机加速和电动机减速,其中电动机加速/减速实则以10%的PWM占空比为递增/递减量。5.6.1直流电动机与H桥电路直流电动机是一种常见的动力源,在很多情况下需要用到直流电动机带动执行机构做各种复杂动作,常需要直流电机能够做正反转运动。如图所示的H桥是一种常见的直流电动机正反转控制电路。正转

反转

制动5.6.2双H桥芯片L298市面上有许多种H桥芯片,这里介绍其中一种——L298。L298是ST公司(意法半导体公司)出品的一种双H桥芯片,即片内集成两个独立的H桥,可同时驱动两只最高电压46V、最大电流2A直流电动机。如左下图所示为L298的两种封装形式。如右图所示电路是L298的一种典型应用电路,控制信号为5VTTL电平,驱动电压为5V~46V,控制电路由Vss供电,驱动电路由Vs供电。L298各引脚功能:●ENA引脚为H桥A的使能引脚,当ENA接高电平时,使能H桥A,而当ENA接低电平时,禁止H桥A。实际使用中,往往将该引脚连接PWM信号用于调节H桥A控制的直流电动机的转速。●ENB引脚为H桥B的使能引脚,功能与ENA类似,不再赘述。●ISENA引脚为H桥A的驱动检测引脚,用来做过流检测反馈给控制器形成闭环以稳定电机转速,具体应用可参考相关技术文档。一般不用可直接接地。●ISENB引脚为H桥B的驱动检测引脚,功能与ISENA类似,不再赘述。●IN1~IN4为两个H桥的方向控制信号输入端,其中IN1、IN2控制H桥A,IN3、IN4控制H桥B,具体如下表所示。(

H表示高电平,L表示低电平;Motor1表示H桥A控制的直流电动机,Motor2表示H桥B控制的直流电动机。)IN1IN2Motor1状态IN3IN4Motor2状态LL停止LL停止LH正转LH正转HL反转HL反转HH停止HH停止●OUT1~OUT4为两个H桥的输出端,用来连接两只直流电动机。其中OUT1、OUT2用来连接Motor1,OUT3、OUT4用来连接Motor2。

电路中的8只整流二极管作用是防止电动机转向改变时产生的冲击电流打坏L298芯片,仿真无需考虑这个问题。

值得注意的是,L298的控制电路的工作电压是5V,而STM32的工作电压只有3.3V,为了让L298能正确识别STM32发出的控制信号,采用实物验证时,务必①选择具备“FT”特性的GPIO引脚,并②将引脚设为开漏模式并外接上拉电阻到5V电源正极。5.6.3任务程序的编写首先是工程的图形化配置,包括串口的设置、外部中断的设置、PWM输出的设置及GPIO的设置,其中GPIO选择具备“FT”特性的PC8、PC9,均设为开漏模式,如下图所示。

PWM输出的设置请参考任务4.5,但需要进一步修改PWM输出引脚PC7为开漏模式,如所示。图形化配置完成后,一键生成初始化代码后进入编程界面接着完成代码的编写。(现场操作演示…)技能训练(选做):

尝试以L298的通道2驱动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论