嵌入式stm32生产实习指导书复习课程.doc

上传人:1595****071 文档编号:86474375 上传时间:2023-04-14 格式:DOC 页数:31 大小:890.50KB
返回 下载 相关 举报
嵌入式stm32生产实习指导书复习课程.doc_第1页
第1页 / 共31页
嵌入式stm32生产实习指导书复习课程.doc_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《嵌入式stm32生产实习指导书复习课程.doc》由会员分享,可在线阅读,更多相关《嵌入式stm32生产实习指导书复习课程.doc(31页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Good is good, but better carries it.精益求精,善益求善。嵌入式stm32生产实习指导书-自动化系生产实习STM32开发平台实验指导书电气工程学院自动化系2014年8月11日目录第一部分STM32电路板整体介绍1第一节电路板资源2第二部分软件介绍及开发流程5第一节Keil软件介绍5第二节程序下载7第三部分实验内容介绍8第一节LED灯亮灭实验8第二节按键实验8第三节数码管实验10第四节外部中断实验14第五节定时器实验14第六节串口实验11综合实验一光敏电阻AD实验13综合实验二存储器实验15综合实验三温度测量实验15综合实验四时钟实验16附录:STM32核心板电

2、路图第一部分STM32电路板整体介绍第一节 电路板资源STM32平台采用核心板+外围板方式。核心板主要包括STM32F103VET6最小系统、按键、LED灯、TF卡、串口和JTAG电路。可以完成STM32内部资源的大部分开发应用。外围板包括数码管电路、存储器电路、红外、光敏电阻、温度传感器、ULN2003电路、步进电机、蜂鸣器、DS1302时钟电路和CAN总线等电路设计,基本包括了STM32的所有资源、同时又对IIC、单总线、SPI总线、CAN总线等协议进行了硬件设计。可以说,如何将核心板和外围板调试完成,就掌握了大部分的STM32内容。如图1所示为核心板电路图。图1核心板电路资源介绍核心板的

3、资源有:1. 主CPU,为STM32F103VET62. MiniUSB插座,具有通信功能,可进行USB通信实验3. 电源模块,可以为系统提供3.3V电源4. 单片机最小系统,包括晶振,复位电路,去耦电容等5. 4个LED灯6. 4个按键电路7. TF卡电路8. 一个DB9头的串口外围板主要为了进行功能的扩展,尽可能的发挥STM32的资源。如图2所示:图2STM32外围板资源图外围板的资源有:1. 2个四路数码管2. 1个ULN2003电路、1个步进电机3. 1个蜂鸣器4. 1个24C02芯片5. 1个红外检测芯片HX18386. 1个光敏电阻7. 1个DS18B20温度检测芯片8. 1个DS

4、1302时钟芯片9. 1个CAN通信芯片TJA1050第二部分软件介绍及开发流程第一节 Keil软件介绍进入PC的桌面,点击图标:KeiluVision4,进入如下MDK主界面,这时候编辑区内什么都没有。如图3所示:图2-1KeiluVision4软件界面点击Porject,然后选择OpenProject,如图2-2所示图2-2打开工程过程图选择工程文件,如图2-3所示:图2-3打开工程过程图第二节 这样就可以编辑程序了。如图2-4所示:图2-4打开工程过程图程序下载在下载程序之前,首先需要安装CH341驱动,在安装驱动过程中不要将串口线插在电脑上。驱动安装成功后,插上USB转串口线连接PC机

5、和STM32核心板,打开这个图标,效果如图2-5所示:图2-5ISP程序下载点击联机下载时的程序文件,然后选择要下载的hex(目标文件)程序,如图2-6所示:图2-6ISP程序下载这时候,要将BOOT0跳线帽摘下,BOOT1跳线帽插上,按下复位就可以下载程序了,下载完成后,要将BOOT0跳线帽插上就可以了。第三部分实验内容介绍第一节 LED灯亮灭实验开发步骤:1) 为控制LED灯,知道要使用GPIO(通用输入输出口)外设;2) 简单了解GPIO外设的功能;3) 在编写工程时,首先包含要用到的头文件;4) 进行GPIO外设的配置(包括:1.定义结构体;2.打开外设时钟;3.给结构体成员赋值;4.

6、初始化外设;5.如果外设需要使能,就使能外设;6.如果需要配置中断,就配置NVIC);每个外设在使用之前都需要先开启外设时钟,不同的外设可能挂在不同的时钟总线上,所以需要对STM32的时钟树简单了解。5) 在主函数中首先要调用外设配置函数,然后在主函数中编写用户程序。参考STM32固件库和参考手册进行学习。GPIO实验主要是测试STM32的输入输出口的一个实验,就是对IO进行高低电平输出和对外界环境导致的高低电平输入。可进行的实验就是对LED亮灭的控制和对按键状态的读取。图3-1为LED灯的电路图。图3-1LED灯电路图由图中可以知道PB6、PB7、PB8、PB9连接了四个LED灯。控制灯的亮

7、灭就是对4个IO的电平的控制,当输出高电平的时候LED灭,输出低电平的时候LED形成通路,就亮了。下面简要介绍一下程序。声明GPIO的结构这条语句是定义了一个GPIO_InitTypeDef类型的结构体变量,结构体变量名就是GPIO_InitStruct.初始化GPIO时钟给结构体变量赋值并初始化GPIO。由上可以看出,主要是三个成员变量,GPIO_Pin,GPIO_Speed,GPIO_Mode这三个变量分别控制着GPIO的引脚、速度和模式。这样GPIO的初始化就完成了,接着就可以调用GPIO_SetBits()和GPIO_ResetBits这两个函数来控制LED的亮灭了。第二节按键实验同样

8、对按键的处理就是将按键的GPIO口设置为输入状态,进而读取IO口的电平即可,按键电路图如图3-2所示:图3-2按键电路图按键的处理主要是初始化的情况不同,如图3-3所示:图3-3按键初始化程序接下来就可以用GPIO_ReadInputData()函数来读取端口的状态了,当然了也可以单个读取,需要同学们自行研究和调试。第三节数码管实验数码管,其实也是对IO口的控制,只不过需要了解它的发光原理,以及逻辑控制,如图3-4所示,是4路数码管的电路图,我们采用的是共阴连接的方式。图3-44路数码管电路图同样是对IO的控制,只不过我们采用了74HC573驱动芯片,因为单片机输出的电流不足以点亮数码管,所以

9、用了数据芯片进行了驱动,74HC573是一个数据缓冲器,详细资料百度一下便可。数码管电路图如图3-5所示:图3-5数码管电路图数码管采用动态扫描的方式,可以显示不同的数字和简单的字母。它的初始化和实验一类似,采用推挽输出的方式。唯一需要注意的是,它要先进行编码。有关编码的方式,课上会讲到。接下来就可以,进行动态扫描处理了,如图3-6所示:图3-6数码管动态扫描第四节外部中断实验中断在一个微处理器中地位很重要,我们STM32的所有的输入输出引脚都可以独立的配置为外部中断,我们这儿采用的是STM32F103VET6,它有80个输入输出引脚,这样就可以包括80个外部中断。这儿采用的是检测按键的状态,

10、硬件电路参考第一节按键的电路图。这里主要涉及到一个NVIC的概念,其他的和GPIO配置差不多,NVIC是中断嵌套向量控制器的意思,它是芯片的CPU和外部资源中断配置的一个部分,它的程序主要如图3-11所示:voidKEY_EXTI_Config()GPIO_InitTypeDefGPIO_InitStructure;定义结构体配置GPIOEXTI_InitTypeDefEXTI_InitStructure;定义结构体配置外部中断EXTIRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE);打开GPIOE时

11、钟和复用时钟NVIC_Config();调用中断配置函数GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;结构体成员赋值GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;GPIO_Init(GPIOE,&GPIO_InitStructure);初始化GPIOGPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource0);配置EXTI的中断线EXTI_InitStructure.EXTI_Line=EXTI_Line0;结构体成员赋值EXTI_InitStructure.EXTI_

12、Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);初始化staticvoidNVIC_Config(void)中断配置函数NVIC_InitTypeDefNVIC_InitStructure;定义结构体NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);设定优先级组(确定抢占优先级和响应优先级个数)课堂上会详细讲

13、解NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;结构体成员赋值NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;抢占优先级NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;响应优先级NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);初始化图3-11EXTI和NVIC的配置NVIC中的这儿主要听老师在课堂的讲解。中断服务函数在stm32f10x_

14、it.c中编写,中断服务函数的函数名定义在startup_stm32f10x_hd.s中查找。在中断服务函数中可能需要用到extern声明:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。第五节定时器实验定时器,也是一种中断,它通过不断的计时达到某个时刻做什么事情的目的,它可以产生捕获和PWM常见的两种方式。其中捕获又是测量脉冲的重要方式、PWM则主要用于电机调速等方面。定时器配置:1秒定时TIM_TimeBaseInitTypeDefTIM_TimeBaseStruct;定义结构体RCC_APB1PeriphClo

15、ckCmd(RCC_APB1Periph_TIM2,ENABLE);打开时钟TIM_TimeBaseStruct.TIM_Period=2000;自动重装载寄存器周期的值(计数值)累计TIM_Period个数后产生一个中断TIM_TimeBaseStruct.TIM_Prescaler=36000;时钟预分频数72MHz/36000=2000Hz计数2000刚好等于1秒TIM_TimeBaseStruct.TIM_ClockDivision=TIM_CKD_DIV1;采样分频TIM_TimeBaseStruct.TIM_CounterMode=TIM_CounterMode_Up;向上计数模式

16、TIM2_NVIC_Config();定时器中断优先级配置TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStruct);初始化TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);开启计数溢出中断TIM_Cmd(TIM2,ENABLE);使能TIM2TIM2中断优先级配置:voidTIM2_NVIC_Config(void)NVIC_InitTypeDefNVIC_InitStruct;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);NVIC_InitStruct.NVIC_IRQChannel=T

17、IM2_IRQn;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStruct.NVIC_IRQChannelSubPriority=0;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStruct);同学们在完成指定任务之后可以自主学习用定时器产生占空比可调的PWM波,控制电机转速或者产生呼吸灯效果。第六节串口实验串口主要是指采用DB9头和电脑的串口进行通信,采用的协议是RS232,这是一种很常见的通信方式,是一些上位机和下位机通信的协议。但是

18、工业现场更多的选择的协议是RS485,它是在RS232的基础上演变而来的。所以学习串口通信很有必要性。图3-7是串口通信的电路图。图3-7串口电路图由图可知,主要是PA9和PA10进行的通信。也就是说,STM32的串口资源的端口映射的是PA9和PA10当然也可以查询datasheet,映射别的IO口。对串口的通信主要是对串口的初始化,如图3-8所示:图3-8串口的初始化串口同样需要配置NVIV,只需更改NVIC_InitStruct.NVIC_IRQChannel=USART1_IRQn;其它配置与定时器NVIC配置相同。可以看到协议采用的是115200-8-n-1(波特率115200、通信数

19、据字长8位、无奇偶校验、1位停止位)的形式,在上位机也要采用同样的配置就可以进行通信了。电脑端使用的是串口调试助手。图3-9串口调试助手综合实验一AD实验AD是模拟世界进入数字世界的一个通道,它是一个转换器,众所周知,世界是模拟的,也是连续的。所以对外界的测量主要是对AD的配置。我们采用的是光敏电阻,通过外界光线的不同导致电阻值变化进而电压变化,这样测量电压值的大小,便可以知道光线的强弱。光敏电阻电路电路图如图3-10所示:图3-10光敏电路图同样主要是对STM32内部AD资源的初始化配置,voidADC1_GPIO_Config(void)配置模数转换IO口/PA0ADC1GPIO_Init

20、TypeDefGPIO_InitStructure;定义结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);打开时钟GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;定义端口GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;模拟输入GPIO_Init(GPIOA,&GPIO_InitStructure);初始化voidADC1_Config(void)模数转换模式配置ADC_InitTypeDefADC_InitStructure;定

21、义结构体ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;独立ADC模式ADC_InitStructure.ADC_ScanConvMode=DISABLE;禁止扫描模式,扫描模式用于多通道采集ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;开启连续转换模式ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;不使用外部触发转换ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Righ

22、t;采集数据右对齐ADC_InitStructure.ADC_NbrOfChannel=1;要转换的通道数目1ADC_Init(ADC1,&ADC_InitStructure);初始化ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);配置ADC1的通道0为55.5个采样周期ADC_Cmd(ADC1,ENABLE);使能ADC综合实验主要由学生自己完成,课堂上只对新知识做详细介绍,其它用户程序要求同学们自己设计,在讲解新知识时同学们一定要认真听讲。综合实验二存储器实验本节为综合性实验,会在课堂进行提示讲

23、解,需要同学们自己调试和编程,它的电路图如图3-12所示:图3-12IIC实验在存储器实验中用到I2C协议,参考24C02数据手册。在练习存储器应用时,会给同学们发布24C02的例程源文件和头文件以供参考,课堂上会简单介绍源文件中的各个函数,同学们在编写用户应用时可以直接调用这些函数,所以同学们课堂上一定要认真听讲。综合实验三温度测量实验本节为综合性实验,会在课堂进行提示讲解,需要同学们自己调试和编程。它的电路图如图3-13所示:图3-13温度测量电路在练习温度传感器18b20应用时,会给同学们发布18b20的例程源文件和头文件以供参考,同学们在编写用户应用时可以直接调用这些函数。综合实验四DS1302时钟实验本节为综合性实验,会在课堂进行提示讲解,需要同学们自己调试和编程。它的电路图如图3-14所示:图3-14DS1302电路图在练习DS1302应用时,同样会给同学们发布DS1302的例程源文件和头文件以供参考,同学们自己认真解读,然后调用函数编写用户程序。附录:电路图会统一发放。在这儿打印不太清晰。-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com