
STM32开发平台实验指导书
电气工程学院自动化系
2014年8月11日
第一部分 STM32电路板整体介绍 1
第一节 电路板资源
第二部分 软件介绍及开发流程 5
第一节 Keil软件介绍
第二节 程序下载
第三部分 实验内容介绍 8
第一节 LED灯亮灭实验
第二节 按键实验
第三节 数码管实验
第四节 外部中断实验
第五节 定时器实验
第六节 串口实验
综合实验一 光敏电阻AD实验
综合实验二 存储器实验
综合实验三 温度测量实验
综合实验四 时钟实验
附录:
STM32核心板电路图
第一部分 STM32电路板整体介绍
第一节电路板资源
STM32平台采用核心板+外围板方式。核心板主要包括STM32F103VET6最小系统、按键、LED灯、TF卡、串口和JTAG电路。可以完成STM32内部资源的大部分开发应用。外围板包括数码管电路、存储器电路、红外、光敏电阻、温度传感器、ULN2003电路、步进电机、蜂鸣器、DS1302时钟电路和CAN总线等电路设计,基本包括了STM32的所有资源、同时又对IIC、单总线、SPI总线、CAN总线等协议进行了硬件设计。可以说,如何将核心板和外围板调试完成,就掌握了大部分的STM32内容。如图1所示为核心板电路图。
图1核心板电路资源介绍
核心板的资源有:
1.主CPU, 为STM32F103VET6
2. MiniUSB插座,具有通信功能,可进行USB通信实验
3.电源模块,可以为系统提供3.3V电源
4. 单片机最小系统,包括晶振,复位电路,去耦电容等
5.4个LED灯
6.4个按键电路
7.TF卡电路
8.一个DB9头的串口
外围板主要为了进行功能的扩展,尽可能的发挥STM32的资源。如图2所示:
图2外围板资源图
外围板的资源有:
1.2个四路数码管
2.1个ULN2003电路、1个步进电机
3.1个蜂鸣器
4.1个24C02芯片
5.1个红外检测芯片HX1838
6.1个光敏电阻
7.1个DS18B20温度检测芯片
8.1个DS1302时钟芯片
9.1个CAN通信芯片TJA1050
第二部分 软件介绍及开发流程
第一节Keil软件介绍
进入PC的桌面,点击图标:KeiluVision4,进入如下MDK主界面,这时候编辑区内什么都没有。如图3所示:
图2-1 Keil uVision4软件界面
点击Porject,然后选择Open Project,如图2-2所示
图2-2 打开工程过程图
选择工程文件,如图2-3所示:
图2-3 打开工程过程图
这样就可以编辑程序了。如图2-4所示:
图2打开工程过程图
第二节程序下载
打开这个图标,效果如图2-5所示:
图2-5 ISP程序下载
点击联机下载时的程序文件,然后选择要下载的hex程序,如图2-6所示:
图2-6 ISP程序下载
这时候,要将BOOT0跳线帽摘下,BOOT1跳线帽插上,按下复位就可以下载程序了,下载完成后,要将BOOT0跳线帽插上就可以了。
第三部分 实验内容介绍
第一节LED灯亮灭实验
GPIO实验主要是测试STM32的输入输出口的一个实验,就是对IO进行高低电平输出和对外界环境导致的高低电平输入。可进行的实验就是对LED亮灭的控制和对按键状态的读取。图3-1为LED灯的电路图。
图3灯电路图
由图中可以知道PB6、PB7、PB8、PB9连接了四个LED灯。控制灯的亮灭就是对4个IO的电平的控制,当输出高电平的时候LED灭,输出低电平的时候LED形成通路,就亮了。下面简要介绍一下程序。
1)声明 GPIO 的结构
这条语句是定义了一个GPIO_InitTypeDef类型的结构体变量,结构体变量名就是GPIO_InitStruct.
2)初始化GPIO时钟
3)给结构体变量赋值并初始化GPIO。
由上可以看出,主要是三个成员变量,GPIO_Pin,GPIO_Speed,GPIO_Mode这三个变量分别控制着GPIO的引脚、速度和模式。
这样GPIO的初始化就完成了,接着就可以调用GPIO_SetBits()和GPIO_ResetBits这两个函数来控制LED的亮灭了。
第二节 按键实验
同样对按键的处理就是将按键的GPIO口设置为输入状态,进而读取IO口的电平即可,按键电路图如图3-2所示:
图3-2 按键电路图
按键的处理主要是初始化的情况不同,如图3-3所示:
图3-3 按键初始化程序
接下来就可以用GPIO_ReadInputData()函数来读取端口的状态了,当然了也可以单个读取,需要同学们自行研究和调试。
第三节 数码管实验
数码管,其实也是对IO口的控制,只不过需要了解它的发光原理,以及逻辑控制,如图3-4所示,是4路数码管的电路图,我们采用的是共阴连接的方式。
图3-4 4路数码管电路图
同样是对IO的控制,只不过我们采用了74HC573驱动芯片,因为单片机输出的电流不足以点亮数码管,所以用了数据芯片进行了驱动,74HC573是一个数据缓冲器,详细资料百度一下便可。
数码管电路图如图3-5所示:
图3数码管电路图
数码管采用动态扫描的方式,可以显示不同的数字和简单的字母。它的初始化和实验一类似,采用推挽输出的方式。唯一需要注意的是,它要先进行编码。
有关编码的方式,课上会讲到。接下来就可以,进行动态扫描处理了,如图3-6所示:
图3-6 数码管动态扫描
第四节 外部中断实验
中断在一个微处理器中地位很重要,我们STM32的所有的输入输出引脚都可以的配置为外部中断,我们这儿采用的是STM32F103VET6,它有80个输入输出引脚,这样就可以包括80个外部中断。这儿采用的是检测按键的状态,硬件电路参考第一节按键的电路图。这儿主要涉及到一个NVIC的概念,其他的和GPIO配置差不多,NVIC是中断向量控制器的意思,它是芯片的CPU和外部资源中断配置的一个部分,它的程序主要如图3-11所示:
图3-11 NVIC的配置
这儿主要听老师在课堂的讲解。
第五节 定时器实验
定时器,也是一种中断,它通过不断的计时达到某个时刻做什么事情的目的,它可以产生捕获和PWM常见的两种方式。其中捕获又是测量脉冲的重要方式、PWM则主要用于电机调速等方面。
第六节 串口实验
串口主要是指采用DB9头和电脑的串口进行通信,采用的协议是RS232,这是一种很常见的通信方式,是一些上位机和下位机通信的协议。但是工业现场更多的选择的协议是RS485,它是在RS232的基础上演变而来的。所以学习串口通信很有必要性。图3-7是串口通信的电路图。
图3-7 串口电路图
由图可知,主要是PA9和PA10进行的通信。也就是说,STM32的串口资源的端口映射的是PA9和PA10当然也可以查询datasheet,映射别的IO口。对串口的通信主要是对串口的初始化,如图3-8所示:
图3-8 串口的初始化
可以看到协议采用的是115200-8-n-1的形式,在上位机也要采用同样的配置就可以进行通信了。电脑端使用的是串口调试助手。
图3-9 串口调试助手
综合实验一 AD实验
AD是模拟世界进入数字世界的一个通道,它是一个转换器,众所周知,世界是模拟的,也是连续的。所以对外界的测量主要是对AD的配置。我们采用的是光敏电阻,通过外界光线的不同导致电阻值变化进而电压变化,这样测量电压值的大小,便可以知道光线的强弱。光敏电阻电路电路图如图3-10所示:
图3-10 光敏电路图
同样主要是对STM32内部AD资源的初始化配置,
这儿的程序不是太全,还有很多需要课堂讲解的东西,不在此一一列出,同时,由于以后的程序变得复杂也不会列出大段的程序。需要同学们课堂认真听讲
综合实验二 存储器实验
本节为综合性实验,会在课堂进行提示讲解,需要同学们自己调试和编程,它的电路图如图3-12所示:
图3-12 IIC实验
综合实验三 温度测量实验
本节为综合性实验,会在课堂进行提示讲解,需要同学们自己调试和编程。它的电路图如图3-13所示:
图3-13 温度测量电路
综合实验四 DS1302时钟实验
本节为综合性实验,会在课堂进行提示讲解,需要同学们自己调试和编程。它的电路图如图3-14所示:
图3-14 DS1302电路图
附录:
电路图会统一发放。在这儿打印不太清晰。
