当前位置:首页 > 商业/管理/HR > 销售管理 > 嵌入式技术及应用实验报告
1院系:计算机科学学院专业:计算机科学与技术年级:2012学号:2012213500姓名:指导教师:刘科2015年5月25日2年级2012级班级1班学号2012213500专业计算机科学与技术姓名实验名称实验一、GPIO_LED_KEY实验实验目的熟悉MDK开发平台的使用方法,学会新建、编译、调试和下载工程。理解GPIO通用IO端口的配置和编程方法。理解IO端口高低电平与LED灯亮灭之间的关系。实验设计思路(1)硬件电路设计实验步骤与结果分析1、首先双击工程文件,编译下载程序,观察实验现象,分析原因2、修改源代码,使得四个灯依次循环点亮,或两个一组循环点亮(使用两种方式控制LED灯,一种通过对寄存器赋值方式,另一种通过固件函数调用方式)3、解释主函数中TimingDelay_Decrement的作用,delay()函数是一个死循环,程序通过什么方式从这个死循环中跳出来。4、在自己的U盘上新建工程添加各类文件,使得自己新建的工程文件能够正常编译(若不能正常编译找出原因),下载后验证实3验现象与原始工程是否相同。主要程序代码分析while(1){{//方法一,直接通过寄存器控制管脚的高低电平GPIOF-ODR=0xffffffbf;GPIOB-ODR=0xfffffcff;Delay(80);GPIOF-ODR=0xffffff7f;GPIOB-ODR=0xfffffcff;//pb9Delay(80);GPIOB-ODR=0xfffffeff;GPIOF-ODR=0xffffff3f;Delay(80);GPIOB-ODR=0xfffffdff;GPIOF-ODR=0xffffff3f;//pf6Delay(80);//GPIOF-ODR=0xffffff8f;//pf7//Delay(80);}//temp=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8);//if(temp==1)//{//GPIO_ResetBits(GPIOF,GPIO_Pin_7);//GPIO_SetBits(GPIOB,GPIO_Pin_8);//方法二,通过C函数控制管脚的高低电平//GPIO_SetBits(GPIOB,GPIO_Pin_9);//GPIO_ResetBits(GPIOF,GPIO_Pin_6);//Delay(80);//GPIO_ResetBits(GPIOB,GPIO_Pin_8);//GPIO_SetBits(GPIOB,GPIO_Pin_9);//GPIO_ResetBits(GPIOF,GPIO_Pin_7);//GPIO_SetBits(GPIOF,GPIO_Pin_6);//Delay(80);//GPIO_ResetBits(GPIOB,GPIO_Pin_9);//GPIO_SetBits(GPIOF,GPIO_Pin_6);//GPIO_SetBits(GPIOF,GPIO_Pin_7);//GPIO_ResetBits(GPIOB,GPIO_Pin_8);//方法二,通过C函数控制管脚的高低电平//Delay(80);//}//else4//{//GPIO_ResetBits(GPIOB,GPIO_Pin_8);//Delay(80);//GPIO_SetBits(GPIOB,GPIO_Pin_9);//Delay(80);//}}}心得体会成绩评定教师签名:年月日5年级2012级班级1班学号2012213500专业计算机科学与技术姓名实验名称实验二,TIMERx定时器实验(软件仿真)实验目的了解TIMER定时器的配置方法,理解预分频系数Prescaler与计数时钟频率之间的关系,能分析出计数初值与计数时钟频率以及更新频率之间的关系。实验设计思路(1)硬件电路设计实验步骤与结果分析(1)对TIM2定时器进行控制,使得TIM2通道1产生频率为183.1Hz的方波,通道2产生频率为366.2Hz的方波,通道3产生频率为732.4Hz的方波,通道4产生频率为1464.8Hz的方波(2)配置TIM2各通道均为输出比较模式(即设置TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_Toggle,预分频系数设为2),设置各通道的参数(TIM2CC1=0x8000、TIM2CC2=0x4000、TIM2CC3=0x2000、TIM2CC4=0x1000);在相应的TIM2定时器中断服务处理程序中根据定时器的值翻转输出电平,以输出方波(3)测量定时器程序中各指定输出引脚的频率(采用逻辑分析仪通过软6件仿真方式测量),查看程序,判断是否与预期相符(4)改变频率输出,使得输出频率为1KHZ或其他值公式:TIM2计数时钟频率=TIM2CLK/(Prescaler+1)计数初值CCRx_Val=TIM2计数时钟频率/更新频率主要程序代码分析/*Includes------------------------------------------------------------------*/#includestm32f10x_lib.h/*Privatetypedef-----------------------------------------------------------*//*Privatedefine------------------------------------------------------------*//*Privatemacro-------------------------------------------------------------*//*Privatevariables---------------------------------------------------------*/TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;vu16CCR1_Val=0x3ad4;vu16CCR2_Val=0x4000;vu16CCR3_Val=0x2000;vu16CCR4_Val=0x1000;ErrorStatusHSEStartUpStatus;//TIM2Configuration:OutputCompareToggleMode://TIM2CLK=36MHz,Prescaler=0x2,TIM2counterclock=12MHz//CC1updaterate=TIM2counterclock/CCR1_Val=366.2Hz//CC2updaterate=TIM2counterclock/CCR2_Val=732.4Hz//CC3updaterate=TIM2counterclock/CCR3_Val=1464.8Hz//CC4updaterate=TIM2counterclock/CCR4_Val=2929.6Hz/*Timebaseconfiguration*/TIM_TimeBaseStructure.TIM_Period=0xFFFF;TIM_TimeBaseStructure.TIM_Prescaler=0x02;TIM_TimeBaseStructure.TIM_ClockDivision=0x0;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);/********************************************************************************FunctionName:TIM2_IRQHandler*Description:ThisfunctionhandlesTIM2globalinterruptrequest.*Input:None7*Output:None*Return:None*******************************************************************************/voidTIM2_IRQHandler(void){/*TIM2_CH1togglingwithfrequency=183.1Hz*/if(TIM_GetITStatus(TIM2,TIM_IT_CC1)!=RESET){TIM_ClearITPendingBit(TIM2,TIM_IT_CC1);capture1=TIM_GetCapture1(TIM2);//capture1=TIMx-CCR1;//TIM_GetCapture1获得输入捕获的值//TIMx-CCR1TIM_SetCompare1(TIM2,capture1+CCR1_Val);//TIMx-CCR1=TIMx-CCR1;//TIM_SetCompare1设置比较捕获寄存器值//TIMx-CCR1=Compare1}/*TIM2_CH2togglingwithfrequency=366.2Hz*/if(TIM_GetITStatus(TIM2,TIM_IT_CC2)!=RESET){TIM_ClearITPendingBit(TIM2,TIM_IT_CC2);capture2=TIM_GetCapture2(TIM2);TIM_SetCompare2(TIM2,capture2+CCR2_Val);}/*TIM2_CH3togglingwithfrequency=732.4Hz*/if(TIM_GetITStatus(TIM2,TIM_IT_CC3)!=RESET){TIM_ClearITPendingBit(TIM2,TIM_IT_CC3);capture3=TIM_GetCapture3(TIM2);TIM_SetCompare3(TIM2,capture3+CCR3_Val);}/*TIM2_CH4togglingwithfrequency=1464.8Hz*/if(TIM_GetITStatus(TIM2,TIM_IT_CC4)!=RESET){TIM_ClearITPendingBit(TIM2,TIM_IT_CC4);capture4=TIM_GetCapture4(TIM2);TIM_SetCompare4(TIM2,capture4+CCR4_Val);}}8心得体会成绩评定教师签名:年月日9年级2012级班级1班学号2012213500专业计算机科学与技术姓名实验名称实验三、LCD显示实验实验目的了解LCD屏的显示机理,学会使用字模软件生成不同字体和大小的点阵编码,理解不同字体的显示方式和技巧。学会LCD的初始化操作。实验设计思路(1)硬件电路设计实验步骤与结果分析1、首先双击工程文件(在LCD显示(实验三)目下),编译下载程序,观察实验现象,分析原因2、修改代码,使得LCD屏幕上显示的内容发生变化(如显示自己的学号与姓名)3、通过取模软件将字体设置为“华文中宋”和二号字体,生成字模点阵编码,修改程序使得屏幕上显示二号字体的姓名。10主要程序代码分析主函数中的关键语句//lcd_display_string(CPU:STM32F051,BLACK,GREEN,0,1);lcd_display_string(2012213500,BLACK,GREEN,0,2);lcd_display_GB2312(0,BLACK,GREEN,0,3);lcd_display_GB2312(1,BLACK,GREEN,1,3);lcd_display_GB2312(2,BLACK,GREEN,2,3);while(1){read_res=Read_Continue();lcd_draw_dot(BLACK,(tou
本文标题:嵌入式技术及应用实验报告
链接地址:https://www.777doc.com/doc-7104012 .html