100分 发表于 2020-8-31 09:20:33

大工20春《单片机原理及应用》辅导资料十五

单片机原理及应用辅导资料十五主    题:课件第八章第1-3节
学习时间:2020年7月6日--7月12日
“不忘初心、牢记使命”主题理论学习:
每周文摘:群众路线是我们党的生命线和根本工作路线,是我们党永葆青春活力和战斗力的重要传家宝。不论过去、现在和将来,我们都要坚持一切为了群众,一切依靠群众,从群众中来,到群众中去,把党的正确主张变为群众的自觉行动,把群众路线贯彻到治国理政全部活动之中。
                      摘选自《坚持和运用好毛泽东主席思想活的灵魂》《习近平谈治国理政》课程内容:
我们这周主要学习课件第八章实验第1-3节的相关内容。希望通过下面的内容能使同学们加深对单片机实验相关知识的理解。一、学习要求
了解ALIENTEK MiniSTM32开发板的功能及特点;了解MDK5.10的安装过程以及串口、JLINK的驱动。二、主要内容
1. 实验平台简介
ALIENTEK MiniSTM32开发板是一款迷你型的STM32F103开发板,目前最新版本为V3.0,最新MiniSTM32开发板资源图如图1所示。
图1 MiniSTM32开发板资源图
ALIENTEK MiniSTM32开发板板载资源如下:
◆ CPU:STM32F103RCT6,LQFP64,FLASH:256K,SRAM:48K;
◆ 1个标准的JTAG/SWD调试下载口
◆ 1个电源指示灯(蓝色)
◆ 2个状态指示灯(DS0:红色,DS1:绿色)
◆ 1个红外接收头,配备一款小巧的红外遥控器
◆ 1个IIC接口的EEPROM芯片,24C02,容量256字节
◆ 1个SPI FLASH芯片,W25Q64,容量为8M字节(即64M bit)
◆ 1个DS18B20/DS1820温度传感器预留接口
◆ 1个标准的2.4/2.8/3.5/4.3/7寸LCD接口,支持触摸屏
◆ 1个OLED模块接口(与LCD接口部分共用)
◆ 1个USB串口接口,可用于程序下载和代码调试
◆ 1个USB SLAVE接口,用于USB通信
◆ 1个SD卡接口
◆ 1个PS/2接口,可外接鼠标、键盘
◆ 1组5V电源供应/接入口
◆ 1组3.3V电源供应/接入口
◆ 1个启动模式选择配置接口
◆ 1个2.4G无线通信接口
◆ 1个RTC后备电池座,并带电池
◆ 1个复位按钮,可用于复位MCU和LCD
◆ 3个功能按钮,其中WK_UP兼具唤醒功能
◆ 1个电源开关,控制整个板的电源
◆ 3.3V与5V电源TVS保护,有效防止烧坏芯片。
◆ 独创的一键下载功能
◆ 除晶振占用的IO口外,其余所有IO口全部引出,其中GPIOA和GPIOB按顺序引1)HS0038红外接收头
这是开发板板载的标准38K红外信号接收头,用于接收红外遥控器的信号,有了它,就可以用红外遥控器控制这款开发板了,也可以用来做红外解码等其他相关实验。ALIENTEK MiniSTM32开发板标配了一个红外遥控器,其外观如图2所示:

图2 红外遥控器图片2)DS18B20 预留接口
这是开发板预留的数字温度传感器DS18B20/DS1820接口,采用的是镀金的圆孔母座。当要做DS18B20实验的时候,直接插到这个母座上即可,很方便。DS18B20需自备,插上就可以用的。同样ALIENTEK提供了DS18B20的相关例程。
3)USB串口/串口1
这是USB转串口(P4)同STM32F103RCT6的串口1进行连接的接口,标号RXD和TXD是USB转串口的2个数据口(对CH340G来说),而PA9(TXD)和PA10(RXD)则是STM32的串口1的两个数据口(复用功能下)。他们通过跳线帽对接,就可以和连接在一起了,从而实现STM32的程序下载以及串口通信。
设计成USB串口,是出于现在电脑上串口正在消失,尤其是笔记本,几乎清一色的没有串口。所以板载了USB串口可以方便大家下载代码和调试。而在板子上并没有直接连接在一起,则是出于使用方便的考虑。这样设计,你可以把开发板当成一个USB转TTL串口来使用,从而和其他板子进行通信,而其他板子的串口,也可以方便地接到我们的开发板上。
4)两个LED灯
这是开发板板载的两个LED灯,它们在开发板上的标号为:DS0和DS1。DS0是红色的,DS1是绿色的,主要是方便大家识别。一般的应用2个LED足够了,在调试代码的时候,使用LED来指示程序状态,是非常不错的一个辅助调试方法。ALIENTEK开发板几乎每个实例都使用了LED来指示程序的运行状态。
5)STM32 USB口
这是开发板板载的一个MiniUSB头,用于STM32与电脑的USB通讯(注意不是USB转串口,一键下载的时候不是用这个USB口),此MiniUSB头在开发板上的标号为:USB,用于连接STM32F103RCT6自带的USB,通过此MiniUSB头,开发板就可以和电脑进行USB通信了。开发板总共板载了2个MiniUSB头,一个用于接USB串口,连接CH340G芯片;另外一个用于STM32内带的USB连接。
开发板通过MiniUSB口供电,板载两个MiniUSB头(不共用),主要是考虑了使用的方便性,以及可以给板子提供更大的电流(两个USB都接上)这两个因素。
6)24C02 EEPROM
这是开发板板载的2Kbit(256个字节)EEPROM ,型号为:24C02,用于掉电数据保存。因为STM32内部没有EEPROM,所开发板外扩了24C02,用于存储重要数据,也可以用来做IIC实验,及其他应用。该芯片直接挂在STM32的IO口上。
7)JTAG/SWD
这是开发板板载的20针标准JTAG调试口,在开发板上的标号为:JTAG。该JTAG口直接可以和ULINK或者JLINK或者STLINK等调试器(仿真器)连接,同时由于STM32支持SWD调试,这个JTAG口也可以用SWD模式来连接。
用标准的JTAG调试,需要占用5个IO口,很多时候,可能造成IO口不够用,而用SWD则只需要2个IO口,大大节约了IO数量,但他们达到的效果是一样的。所以调试下载的时候,强烈建议使用SWD模式。
8)CH340G
这是开发板板载的USB转串口芯片,型号为:CH340G。有了这个芯片,我们就可以实现USB转串口,从而能实现USB下载代码,串口通信等。
9)USB转串口接口
这是开发板板载的另外一个MiniUSB头(USB_232),用于USB连接CH340G芯片,从而实现USB转串口,所以串口下载代码的时候,USB一定是要接在这个口上的。同时,此MiniUSB接头也是开发板电源的主要提供口。
10)STM32启动配置选择
这是开发板板载的启动模式选择开关,在开发板上的标号为:BOOT。STM32有BOOT0(B0)和BOOT1(B1)两个启动选择引脚,用于选择复位后STM32的启动模式,默认B0,B1都是连接在GND的。作为开发板,这两个是必须的。在开发板上,我们通过跳线帽选择STM32的启动模式。
11)电源指示灯
这是开发板板载的一颗蓝色的LED,用于指示电源状态,在开发板上的标号为:PWR。在电源开启的时候(通过板上的电源开关控制),该灯会亮,否则不亮。通过这个LED,可以判断开发板的上电情况,开发板必须在上电的条件下(电源灯亮),才可以正常使用。
12)复位按键
这是开发板板载的复位按键,用于复位STM32,同时还具有复位液晶的功能,因为液晶模块的复位引脚和STM32的复位引脚是连接在一起的,此按键在开发板上的标号为:RESET。当按下该键的时候,STM32和液晶一并被复位。
13)WK_UP按键
这是开发板板载的一个唤醒按键,该按键连接到STM32的WAKE_UP(PA0)引脚,可用于待机模式下的唤醒,在不使用唤醒功能的时候,也可以做为普通按键输入使用,此按键在开发板上的标号为:WK_UP。
14)两个普通按键
这是开发板板载的两个普通按键,可以用于人机交互的输入,这两个按键是直接连接在STM32的IO口上的,两个按键在开发板上的标号分别为:KEY0、KEY1。
15)电源芯片
这是开发板的电源稳压芯片,型号为:AMS1117-3.3。因为STM32是3.3V供电的,所以我们需要将USB的5V电压转换为3.3V,这个芯片就是将5V转换为3.3V的线性稳压芯片。
16)电源开关
这是开发板板载的电源开关,此开关在开发板上的标号为:K1,并标有ON/OFF丝印。该开关用于控制整个开发板的供电,如果切断,则整个开发板都将断电,电源指示灯(PWR)会随着此开关的状态而亮灭。
17)PS2鼠标/键盘接口
这是开发板板载的一个标准PS/2接头,用于连接电脑鼠标和键盘等PS/2设备,在开发板上的标号为:PS/2。通过该接口,我们仅需要2个IO口,就可以扩展一个键盘,所以大家不必要对板上只有3个按键而感到担忧。ALIENTEK提供了标准的鼠标驱动例程,方便大家学习PS/2协议。
18)3.3V电源输出/输入
这是开发板板载的一组3.3V电源输入输出排针(2*3),在开发板上的标号为:VOUT1。该排针用于给外部提供3.3V的电源,也可以用于从外部取3.3V的电源给板子供电。大家在实验的时候可能经常会为没有3.3V电源而苦恼不已,ALIENTEK充分考虑到了大家需求,有了这组3.3V排针,您就可以很方便的拥有一个简单的3.3V电源(最大电流不能超过500ma),另外板载了3.3V TVS管,能有效吸收高压脉冲,防止外接设备/电源可能对开发板造成的损坏。
19)5V电源输出/输入
这是开发板板载的一组5V电源输入输出排针(2*3),在开发板上的标号为:VOUT2,用于给外部提供5V的电源,也可以用于从外部取5V的电源给板子供电。同样大家在实验的时候可能经常会为没有5V电源而苦恼不已,有了ALIENTEK MiniSTM32开发板,您就可以很方便的拥有一个简单的5V电源(最大电流不能超过500ma),另外板载了5V TVS管,能有效吸收高压脉冲,防止外接设备/电源可能对开发板造成的损坏。
20)GPIOC&D引出IO口
这是开发板板载的GPIOC与GPIOD等IO口的引出排针,在开发板上的标号为:P5。我们可以用这些引出的IO口来连接外部模块,方便大家外接其他模块。
21)SD卡接口
这是开发板板载的SD卡接口。SD卡作最常见的存储设备之一,是很多数码设备的存储媒介,比如数码相框、数码相机、MP5、手机、平板电脑等。我们的开发板自带了SD卡接口(大卡),可以用于SD卡实验,方便大家学习SD卡,TF卡通过转接座也可以很方便的接到我们的开发板上。
有了它,开发板就相当于拥有了一个大容量的外部存储器,不但可以用来提供数据,也可以用来存储数据,使得这款开发板可以完成更多的功能。
这里要特别说明一下:该SD卡卡座是在开发板的背面!
22)W25Q6464M FLASH
这是开发板板载的一颗FLASH芯片,型号为W25Q64。这颗芯片的容量为64M bit,也就是8M字节。有了这颗芯片,我们就可以存储一些不常修改的数据到里面,比如字库等,从而大大节省对STM32内部FLASH的占用。关于该芯片的使用见SPI实验这个章节。
23)NRF24L01模块接口
这是开发板板载的NRF24L01模块接口,只要插入NRF24L01无线模块,我们便可以实现无线通信功能。但是提醒大家:NRF24L01通信,至少需要2个模块和2个开发板同时工作才可以。如果只有1个开发板或1个模块,是没法实现无线通信的。
24)GPIOB&C引出IO口
这是开发板板载的GPIOB与GPIOC的引出口,该接口用于将STM32的GPIOB和部分的GPIOC引出,方便大家的使用,在开发板上的标号为:P1。这里GPIOB全部使用顺序引出的方式,尤其适合外部总线型器件的接入。
25)STM32F103RCT6这是开发板的核心芯片,从3.0版本开始,升级到RCT6,详细型号为:STM32F103RCT6。该芯片具有48K SRAM、256K FLASH、2个16位基本定时器、4个16位通用定时器、2个16位高级定时器、2个DMA控制器、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口、51个通用IO口。
26)OLED&LCD共用接口
这是ALIENTEK开发板的特色设计,一个接口,兼容两种模块。在此部分,LCD的部分IO和OLED的IO共用,具体请参看后面的开发板原理图。这样我们一个接口既可以接LCD模块,又可以接OLED模块。OLED模块使用的是ALIENTEK的OLED模块,分辨率为128*64,模块大小为2.6cm*2.7cm。而LCD模块,则可以使用ALIENTEK全系列的TFTLCD模块,包括:2.4寸(电阻屏,240*320)、2.8寸(电阻屏,240*320)、3.5寸(电阻屏,320*480)、4.3寸(电容屏,800*480)、7寸(电容屏,800*480)。
这里特别提醒:在使用的时候,OLED模块是靠左插的,而LCD模块,则是靠右插,在后续章节我们将分别介绍OLED模块和LCD模块的使用。
27)GPIOA引出IO口
这是开发板GPIOA的引出排针,在开发板上的标号为P3。ALIENTEK开发板将所有的IO口(除了2个晶振占用的4个IO口)都用排针引出来了,而且GPIOA和GPIOB是按顺序引出的。按顺序引出,在很多时候能方便大家的实验和测试,比如外接带并行控制的器件,有了并行引出的排针,那么就可以很方便的通过这些排针连接到外部设备了。
将开发板的IO口全部排针引出,大家就可以用来外接其他模块等,不论调试还是功能扩展都是很方便的。
28)红外&温度传感器连接口
这是开发板板载的红外与温度传感器的连接接口,开发板虽然自带了红外接收头和DS18B20的接口,但是并没有将这两个器件直接挂在IO口上,而是通过跳线帽来连接,以防止在不使用这两器件的时候,他们对IO口的干扰,当然我们也可以用跳线,把DS18B20和红外遥控接收模块接到其他电路上使用。2.MDK5简介
MDK源自德国的KEIL公司,是RealView MDK的简称。在全球MDK被超过10万的嵌入式开发工程师使用。目前最新版本为:MDK5.10,该版本使用uVision5 IDE集成开发环境,是目前针对ARM处理器,尤其是Cortex M内核处理器的最佳开发工具。
MDK5向后兼容MDK4和MDK3等,以前的项目同样可以在MDK5上进行开发(但是头文件方面得全部自己添加),MDK5同时加强了针对Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行升级,MDK5由两个部分组成:MDK Core和Software Packs。其中,Software Packs可以独立于工具链进行新芯片支持和中间库的升级。如图3所示。

图3 MDK5组成从上图可以看出,MDKCore又分成四个部分:uVision IDE with Editor(编辑器),ARM C/C++ Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。uVision IDE从MDK4.7版本开始就加入了代码提示功能和语法动态检测等实用功能,相对于以往的IDE改进很大。
Software Packs(包安装器)又分为:Device(芯片支持),CMSIS(ARM Cortex微控制器软件接口标准)和Mdidleware(中间库)三个小部分,通过包安装器,可以安装最新的组件,从而支持新的器件、提供新的设备驱动库以及最新例程等,加速产品开发进度。
同以往的MDK不同,以往的MDK把所有组件到包含到了一个安装包里面,显得十分“笨重”,MDK5则不一样,MDK Core是一个独立的安装包,它并不包含器件支持、设备驱动、CMSIS等组件,大小不到300M,相对于MDK4.70A的500多M,瘦身明显,MDK5安装包可以在:http://www.keil.com/demo/eval/arm.htm下载到。而器件支持、设备驱动、CMSIS等组件,则可以点击MDK5的Build Toolbar的最后一个图标调出Pack Installer,来进行各种组件的安装。也可以在http://www.keil.com/dd2/pack这个地址下载,然后进行安装。
最后,学习STM32F103还要安装两个包:ARM.CMSIS.3.20.4.pack(用于支持ST标准库,也就是所谓的库函数)和Keil.STM32F1xx_DFP.1.0.4.pack(STM32F1的器件库)。3.STM软件仿真
MDK的一个强大的功能就是提供软件仿真,通过软件仿真,可以发现很多将要出现的问题,避免了下载到STM32里面来查这些错误,这样最大的好处是能很方便的检查程序存在的问题,因为在MDK的仿真下面,可以查看很多硬件相关的寄存器,通过观察这些寄存器,可以知道代码是不是真正有效。另外一个优点是不必频繁的刷机,从而延长了STM32的FLASH寿命(STM32的FLASH寿命≥1W次)。当然,软件仿真不是万能的,很多问题还是要到在线调试才能发现。
Debug工具条在仿真时非常有用。Debug工具条部分按钮的功能如图4所示:
图4 Debug工具条复位:其功能等同于硬件上按复位按钮。相当于实现了一次硬复位。按下该按钮之后,代码会重新从头开始执行。
执行到断点处:该按钮用来快速执行到断点处,有时候你并不需要观看每步是怎么执行的,而是想快速的执行到程序的某个地方看结果,这个按钮就可以实现这样的功能,前提是你在查看的地方设置了断点。
停止运行:此按钮在程序一直执行的时候会变为有效,通过按该按钮,就可以使程序停止下来,进入到单步调试状态。
执行进去:该按钮用来实现执行到某个函数里面去的功能,在没有函数的情况下,是等同于执行过去按钮的。
执行过去:在碰到有函数的地方,通过该按钮就可以单步执行过这个函数,而不进入这个函数单步执行。
执行出去:该按钮是在进入了函数单步调试的时候,有时候你可能不必再执行该函数的剩余部分了,通过该按钮就直接一步执行完函数余下的部分,并跳出函数,回到函数被调用的位置。
执行到光标处:该按钮可以迅速的使程序运行到光标处,其实是挺像执行到断点处按钮功能,但是两者是有区别的,断点可以有多个,但是光标所在处只有一个。
汇编窗口:通过该按钮,就可以查看汇编代码,这对分析程序很有用。
堆栈局部变量窗口:通过该按钮,显示Call Stack+Locals窗口,显示当前函数的局部变量及其值,方便查看。
观察窗口:MDK5提供2个观察窗口(下拉选择),该按钮按下,会弹出一个显示变量的窗口,输入你所想要观察的变量/表达式,即可查看其值,是很常用的一个调试窗口。
内存查看窗口:MDK5提供4个内存查看窗口(下拉选择),该按钮按下,会弹出一个内存查看窗口,可以在里面输入你要查看的内存地址,然后观察这一片内存的变化情况。是很常用的一个调试窗口
串口打印窗口:MDK5提供4个串口打印窗口(下拉选择),该按钮按下,会弹出一个类似串口调试助手界面的窗口,用来显示从串口打印出来的内容。
逻辑分析窗口:该图标下面有3个选项(下拉选择),我们一般用第一个,也就是逻辑分析窗口(Logic Analyzer),点击即可调出该窗口,通过SETUP按钮新建一些IO口,就可以观察这些IO口的电平变化情况,以多种形式显示出来,比较直观。
系统查看窗口:该按钮可以提供各种外设寄存器的查看窗口(通过下拉选择),选择对应外设,即可调出该外设的相关寄存器表,并显示这些寄存器的值,方便查看设置的是否正确。
大工作业答案无忧答案网整理
页: [1]
查看完整版本: 大工20春《单片机原理及应用》辅导资料十五