版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 嵌入式系统导论实验报告学院学号姓名上海工程技术大学电子电气工程学院实验一GPIO(按键和LED)实验一、实验要求、掌握基于STM32F103微控制器的嵌入式系统、仿真器和开发用PC机之间的连接方法,能够搭建基于STM32F103微控制器的嵌入式系统交叉开发环境。2、熟悉常用的嵌入式开发工具KEILMDK或IAREWARM的操作环境和基本功能(包括编辑、编译、链接、调试和下载等)学会创建、配置和管理STM32工程,掌握嵌入式程序的基本调试方法,学会使用逻辑分析仪窗口和外设窗口等信息窗口调试嵌入式程序。3、理解LED和按键的构件原理,学会设计它们与微控制器间的接口电路4、掌握STM32F103微
2、控制器GPIO的工作原理,熟悉STM32的GPIO库函数5、学会使用STM32的GPIO库函数在KEILMDK或IAREWARM下开发基于LED和按键的简单嵌入式应用程序二、实验环境、硬件:ALIENTEKSTM32F103嵌入式开发板、软件:KEILMDK或IAREWARM三、实验内容1、流水灯实验一:在KEILMDK或IAREWARM中建立STM32工程,并使用GPIO库函数和延时循环设计基于无限循环架构的嵌入式应用程序,使开发板上的红色LED以一定周期闪烁。采用软件仿真的方式调试程序,通过“LogicAnalyzer”,观察程序模拟运行时连接红色LED的引脚PA8上的输出波形。采用硬件下
3、载的方式调试程序,观察程序下载硬件运行时红色LED的闪烁情况。2、按键控制LED实验:在KEILMDK或IAREWARM中建立STM32工程,并使用GPIO库函数设计基于无限循环架构的嵌入式应用程序,实现以下功能:当按键KEY0按下时,目标板上红色LED点亮;当按键KEY0释放时,目标板上红色LED熄灭。采用软件仿真的方式调试程序,通过“LogicAnalyzer”和“PeripheralsGPIOC”,观察程序模拟运行时连接红色LED的引脚PA8和连接按键KEY0的PC5上的输出波形。采用硬件下载的方式调试程序,观察程序下载硬件运行时按键KEY0按下和释放时红色LED的点亮和熄灭情况。四、硬
4、件设计1、发光二极管(红色LED)、按键(KEY0)与嵌入式微控制器(STM32F103)的接口电路五、软件设计1、流水灯实验一稈序:#incljdefI1112131415161了151?2(?21222325#incljdestiiLSfIQx.nveldLZDOCoriic(vcid.):vcidvcidvcidLEDO_Otl(vcid;LEDO0(vcid:Delay(unsignedintmain(vcid)EH匸EDO_Conig();while(J.)EEDO_On();Delay(:x-3FFFFF);匸ED0_O();Delay(xSFFFFF;vcidLED0_Conii
5、g(vcid.)GFIQ_InitTypeDef/*EnatleGFIOGFIC?_I工丄匸5匸ractare;LEDOclock:V242-52612-3230313233363735354011吐2吐;3吐吐吐546474849GFIO_InitrypeDeGEIO_Init5-Cxjcfure;Z*LiableGFIO_匚EEQclock*/RCC_AFB2Perlp?;ClackCrr.d(IiCC_APE2Periph_SFIQAfENAJLE;Z*GFID_LEDQPin(PASJCaniiguration.*7GFIO_Ilt5trjctuxe.GBHGFii:!=GPIC-_P
6、i_5;GFIO_Ilt5trjctuxe.GBHGH旦亡=&PIC-_Mode_Dt_PPrGFIQ_Il!t;51rjcture亡亡d=G-FI&_5p亡亡d_2MHs;GFIQ_Ilt;(SFZQA,&GFZ0_IrLit5tructJ.re);voidLEDQ_On(vcldTOC o 1-5 h zHI_GFIQ_Resetits(GFIOA,GFZ0_Pin_3);:3-3-veilLEDO_Off(veld)HI_GFIQ_5etlts(GPIOA,GFZ0_Fln_3);veilDelayCansignedlang工)B赴后unsignedleng1;护fcrf.L=.;ix;
7、i;GFZ0_Reset.Bit3(G-PIDA,SPID_Pin_5)rveldLEDOOff(vcid.E-I_GFZ0_5e21-Cs(GFIOAfGFI&_Pii_S)rveldDelay(jnsign亡dlengx)El-unsignedlengi;fcr(1=j;Kx;i+);3、按键控制LED实验程序:includestn32f1Ox.huoidLEDOConig(uold):uoidLED0_0n(void):uoidLEDO_Off(uoid);uoidKEV_Config(uoid);unsignedintKe_Read(uoid);intnain(uoid)unsigne
8、dintkci_no=B;LED0_Config();_kEVConfigO;LEDOOff();while(1)hei/_no=Kej/_Read();if(hei/no)LED0_Qn();elseLEDB_Off();uoidLEDOConFig(uoid)_GPIOInitTijpeDefGPIOnitstructure;/*_Enabl&GPIO_LED0-clock*/RCC_fiPB2P&riphClockCmd(RCC_fiPB2Periph_CPI0fi,ENABLE);/*CPIOLE&aPin(Pfi8)Configuration*7CP10_InitStructure-
9、GPIOPin=GPI0_Pin_8;GP101nitStructure.GPIoZhode=GPIO_Hode_Out_PP;GPIDnitStructure.GPIO_Speed=GPIfl_Speed_2MHz;GPIDnit(GPIOA,&GPIO_InitStructurej;uoidLED0_an(uoid)_GPIO_ResetBitsCGPIOfi,GPI0_Fin_8);voidLED0_aff(uoid)_GPIOSetBitsfGPIOfi,GPIOPin町;uoidKEVConFig(uoid)_CPIOInitTypeDeFGPI0_InitStructure;/*E
10、nableGPIOKEVQclock*/RCC_fiPB2PeriphClockCmd(RCC_fiPB2Periph_CPI0C,ENABLE);/*ConfigureKEYSButton/GPIO_InitStructure.CPIO_Mode二GPia_Mod9_IPU;GPIO_InitStructure.CPIO_Pin二GPia_Pin_5;GPIO_Init(GPIOC,&GPIOTnitStructure);_unsignedintKei/Read(void)/*iFKEVOispressed*/iF(!GPIO_ReadInputDataBit(CPIOC,GPIQPinS)
11、return1;elsereturn6;六、实验结果1、流水灯实验一1)软件模拟仿真用连接红色LED的PA8引脚的输出信号波形图描述软件仿真的运行结果2)下载硬件运行用文字或图片描述程序在STM32F103微控制器上的运行结果-ISTM32F103微控制器上的运行结果为:LED灯点亮一段时间后熄灭并且循环点亮2、按键控制LED实验1)软件模拟仿真用连接红色LED的PA8和连接按键KEYO的PC5的引脚信号波形图描述软件仿真的运行结5nua.Doad.bve.MruTintMmTm芻.畛住3.5S223aLookAnalyzer04D.193315丄2)下载硬件运行用文字或图片描述程序在STM3
12、2F103微控制器上的运行结果按下按钮LED灯点亮,松开按钮后LED灯熄灭七、实验思考1、依次连接按键KEY0、KEY1和WKUP的STM32引脚PA13、PA15和PA0的复用功能:1)PA13、PA15:PinsPinnameliOLevelMainfunction13(afterraset)AitBrntefuncHans11-1LFEGA100LQFP48/VFQIFPN4BDefaultRemapA10F&泅A846727325PA13I/OFTJTMS/SWDIOPA13E635D5477426Vss2SVssF63654&7527SVwle畑37A7斗976PA14I/OFTJT
13、CK;SWCLKPA14严33A6501129PA15I/OFTJTOInM2.CHl.ETR1PA15/SPI1IMS%由于PA13和PA15复位时默认设置为调试接口引脚(JTAG/SW),所以观察实验结果时先关闭开发板电源,然后拔下开发板上连接的仿真器接口,接着重新打开开发板电源观察程序运行结果。由于PA0外接跳线连接到温度传感器DS18B20,所以在做按键KEY和外部中断EXTI实验时,先拔下开发板上PA0与DS18B20的跳线。实验二定时器实验一、实验目的1、掌握STM32的TIMER工作原理,熟悉STM32的TIMER库函数2、学会使用STM32库函数在KEILMDK或IAREWAR
14、M下开发基于TIMER的嵌入式应用程序、掌握嵌入式系统中延时的实现方法和主要应用4、学会在嵌入式开发工具(KEILMDK或IAREWARM)中使用单步全速运行、设置断点和观察变量寄存器等方法调试嵌入式应用程序二、实验环境1、硬件:ALIENTEKSTM32F103嵌入式开发板2、软件:KEILMDK或IAREWARM三、实验内容1、流水灯实验二:在KEILMDK或IAREWARM中建立STM32工程,使用GPIO和TIMER库函数,设计基于无限循环架构的嵌入式应用程序,使目标板上红色LED按固定时间一直闪烁,其中红色LED点亮和熄灭的时间各为x秒&=学生学号最后两位/10,如对于学号为0211
15、10223的学生,x=23.0/10.0=2.3秒)。同时,在主程序中定义一个32位无符号变量CountOfToggle用来统计红色LED闪烁的次数,并且每当红色LED完成一次闪烁时,便在调试窗口中输出该变量的值。采用软件仿真的方式调试程序,当程序模拟运行时,通过设置断点、使用“LogicAnalyzer”等方法观察连接红色LED的引脚PA8上的输出波形,并使用“DebugViewer”监测用来记录红色LED闪烁次数的32位无符号变量CountOfToggle的变化情况。采用硬件下载的方式调试程序,观察程序下载硬件运行时红色LED的闪烁情况。2、PWM输出实验:在KEILMDK或IAREWAR
16、M中建立STM32工程,使用GPIO和TIMER库函数,设计基于无限循环架构的嵌入式应用程序,实现以下功能:使用PWM输出达到部分点亮红色LED的效果即在连接红色LED引脚PA8(TIM1的通道1)上输出频率为20kHz、占空比(即正脉冲时间与信号周期的比值)为94%的矩形脉冲信号,如下图所示。PA3fTlM8_CHr采用软件仿真的方式调试程序,当程序模拟运行时,使用“LogicAnalyzer”观察连接红色LED的引脚PA8上的输出波形。采用硬件下载的方式调试程序,观察程序下载硬件运行时红色LED的亮度情况,注意与实验一中完全点亮的红色LED的亮度比较。四、硬件设计1、发光二极管(LED)与
17、嵌入式微控制器(STM32F103)的接口电路五、软件设计1、流水灯实验二:include1flx.hincludestruct_FILE;LED匸DFF();TH122De-lay580l1S;(;CountOFT&gglei+;printF(TheCountofToggleisdn,CountOfToggle);voidLED0_ConFig(void)GPIOnitType&eFGPIO_InitStructure;/*_EnableGPIO_LED0_cloclc*/RCC_APB2PeriphClocl4Cind(RCC_APB2Periph_GPI0AsENABLE);/*GPIO
18、_LEI0Pin(Pft8Configuration*7GPIDnitstructure.GPI0_Pin=GPI0_Pin_8;GPIDnitstructure.GPI0_Mode=GPIO_Mode_Out_PP;GPIDnitstructure.GPIO_Speed=GPI0_Speed_2MHz;GP10nit(GPIOft,&GPI0_TnitStructure7;voidLED0_an(woid)cr1【。血小啦匕卩卩側,crio_卩5町uoLain)n_iiti-(uolri)=TIM2FrequencyIinl:lK=;/*Clpar7TM2upclatpfipndinrjFl
19、ag*/1ibi_i:iPArHAgu1,1im_fini;_iiprtATPj;/*EiidbltTIII2uuuiiltr*/TINCndCTIMZ,ENABLE;ufiile(TIM_GetriagStatus(TIh12,TINrLflGUpdate)11匚匚T);2、PWM输出实验:finc-ludestm32fIOjkhw111121311517IS132G21222325voidTIN1PWMImt(void):incmaizi(voidEliTLMl_EWilHiC0;while(1:void(BiGPio_lciltypeDerGFlo_lnic5crlcluie;TlM_T
20、i.nieEaseinltTjjpeDelTIM_TimeBaseStwcture:TIMCCInitTypsDefTinfCCInicStzucture;LTD11GPIOfPAS:T1M1_CH1Configraraior,EnableGPIO_KEDLEDanditaAFIOz;lack*/rccfezPeriDUCiockcmti(rdzfezferiDh_GEiOAirdz_fiEE2Feripnenaslej;/*GPIOR.EDLEDPinConfiguratiori賈F&PIC_InitStructuzeBGPIO_Pin=GPIO_Pin_S;SPICInitStruptur
21、e&卩工企!血=GPIO_Mode_AF_PP;GFIO_IritStz口匚匚ureGPIO_3p壬GPI0_3n=ed_5GMriz;jPLC_iniL(GPIDAh-4GPio_ini匸5匸工uctuli?已;/*Eralc-leTlMlclock*725/*EnableIMlclock726RCC_APB2PeriphClockZmd(RCC_HPB2Periph_TIM2fENABLE);27|d/*TIM2TimeEasaConfiguration:TIMnCLK/(TIM_Prescale工+1J(TIM_Penod+1)=TIM1FrequencyTIM1CLE=iZMHZfTI
22、M1frequency=ZQlcHz,TlM_Prescaler=72-1,I1M1CouncerClock=1MHzfTlM_Periccl=50-1/*TiiriebaseacnfgLira.tiaiiA/TIMTimeBaaeStzuctureTIMFrescaler72-1;TIMTimeBaseE七工口ctuz:mTIMPeriod.=50-1;TIM_TimeBaseStructure.TIM_C1ockDivision=d:TIM_TimeBaseS匸工net:ur已TIM_Cciun匸已it忸or!已=TIN_Count:erMode_UpjTIM_TimeBaselmxt(T
23、IMlr41IM_TirueBaseStructuie;/*FNM匚anligura匸工口口*/TimDCInitStruetorcT:EH_OQ匚亡二TLM_0CModeWM1;/*FW1Mode1:Whencountingup-TIMx_CNTTIMk_CCR:iTiactivaPolarityWhencountingdown-TIMX_CNT*100%砧址5吐巧17-1E址勺50525354555S59062-TIHK_CNTTIHK_CCR:WfienCQunLlngdown-TIHK_CNTTIHK_CCR:Ac-LivePolarityinAc匸丄话亡PolarityinAc-Ll
24、vePolarluy盘c匸丄草亡Polarity/PWMOhlpqlActive(duringrheTlM_Ful3e)PolarityTimocinlLS匸匸Fel.TJZMQCTiDlaLEj.cy=Tim_ocpa1ar1ry_Hign;Z/DuryCycle=(llM_PLil3ef(TlM_Ferlod十1)100%TimQClniLSLracLiireTlM_Pul3e=27:/Enableo匸put3匸ateTiiiiQClniLSLrucLiireTlM_QQLpQLSLaLe=IllOuLpuLslaLe_Enaile;/iniLializeTIM1_CH1TlM_ociln
25、iL(TlMlrilimociniLS匸mcnsiiE皂);/EnaiblesrheTIM1PreloadTIM_QC1Pre1oadconr1g(TlMlf/EnablestheTIM1PrelaadTim_arrpre1oadconr1g(TlMlr/frEnableJIMIcounrer*/onccaiRegisrerTIM_OCPre1oad_Enalle:i;onARRFLeglsterENABLE;TIM_Crnd(TIMlrENABLE”;/EnaiblesrheTlM(lrPeripheralMainOulpqlsTI:M_卬口匸JZMlENABLER;六、实验结果1、流水灯实
26、验二:1)软件模拟仿真用连接红色LED的PA8引脚的输出信号波形图描述软件仿真的运行结果截图描述变量窗口和调试窗口中记录LED闪烁次数的变量CountOfToggle的变化情况石!险|厨刖赳I羽声如fa|jjndc|MnTimHsTime!3adBeal.0C241ETrrEIlJJAJi|ICOO:iCBDCOjiHhBZTIQjW.c$|IFKr-JDvtiugtortmVWtr叵DduduT:JSCouzicfla2$Th*Ccuih.dTe-e-1*bLVpieCountofTngcle15+Couzi-ofcgc-l*J.S5=l:.r匚口LUI匚orTcaclsbL$2)下载硬件运
27、行用文字或图片描述程序在STM32F103微控制器上的运行结果STM32F103微控制器上的运行结果为:LED点亮之后熄灭并且循环点亮2、PWM输岀实验:1)软件模拟仿真用连接红色LED的PA8引脚的输出信号波形图描述软件仿真的运行结果2)下载硬件运行用文字或图片描述程序在STM32F103微控制器上的运行结果STM32F103微控制器上的运行结果为:LED几乎是一直在点亮,几乎察觉不到有熄灭七、实验思考1、STM32引脚PA8可选的复用功能(TIM通道)Pin*Fin”*I1/OLevelMainfunction(afterreset)Aitrntefuhctlcns1-1LQFPiqQOaraultRemapD929LI7416720maLOFTPABUSART1_CK/2、STM32引脚PD2可选的复用功能(TIM通道)B7閃5483PD2I/OFTPD2TIM3_ETE精选文库3、咼级定时器TIM1的通道 AltrnteTurwl|cin$(1jMainfuhcllon3(afterreset)Pinnames-ts甕U
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江苏省镇江市中考语文真题卷含答案解析
- 幼儿园保育工作计划总结
- 2025年楚雄市高压电工证理论考试练习题含答案
- 安环部员工2025年度工作总结模版
- 小学六年级语文教师教学工作总结
- 脚手架工程量计算方法
- 2025年市场监督管理局业务考试复习题集及答案解析
- 花卉栽培试题库及答案
- 2025年社区公共卫生服务培训试题集含答案
- 电工三级(高级工)试题含答案
- 2025年大学大一(法学)法理学试题及答案
- 胆囊癌课件教学课件
- 广西2025年高等职业教育考试全区模拟测试 能源动力与材料 大类试题及逐题答案解说
- 2026江苏省公务员考试公安机关公务员(人民警察)历年真题汇编附答案解析
- 孕妇贫血教学课件
- 超市冷库应急预案(3篇)
- 5年(2021-2025)山东高考生物真题分类汇编:专题17 基因工程(解析版)
- 2025年10月自考00610高级日语(二)试题及答案
- 新华资产招聘笔试题库2025
- 2025年中国潜孔钻机行业细分市场研究及重点企业深度调查分析报告
- 食品经营场所及设施设备清洗消毒和维修保养制度
评论
0/150
提交评论