单片机STM32实验报告_第1页
单片机STM32实验报告_第2页
单片机STM32实验报告_第3页
单片机STM32实验报告_第4页
单片机STM32实验报告_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成成绩实验报告课程名称:单片微机原理与车载系统学生姓名蒋昭立班级电科1601学号指导教师易吉良2018年12月17日实验1GPIO实验实验目的1)熟悉MDK开发环境;2)掌握STM32单片机的GPIO使用方法。实验设备1)一台装有Keil和串口调试软件的计算机;2)一套STM32F103开发板;3)STlink硬件仿真器。基本实验内容1)熟悉MDK开发环境,参考STM32F1开发指南(精英版)-寄存器版本第3章,安装MDK并新建test工程,运行例程,在串口窗宽观察结果,并记录如下:从图片可以看出,例程运行成功,没有错误。出匚IMJJU-Kb*ifcirdpr-E-UViuanhM-EVItw

2、內Hlifl-iBu6HuMiiihl45VCS-WIMMr旺事曙內1.让二AIcA日ddOM.i_2i#IE_CFH&FH&MHCP-IO_J?xa_5-|2)按键输入实验,STM32F1开发指南(精英版)-寄存器版本第8章。实现功能:3个按钮(KEY_UP、KEYO和KEY1),来控制板上的2个LED(DS0和DS1)和蜂鸣器,其中KEY_UP控制蜂鸣器,按一次叫,再按一次停;KEY1控制DS1,按一次亮,再按一次灭;KEYO则同时控制DSO和DS1,按一次,他们的状态就翻转一次。理解连续按概念及其实现代码。参数mode为O的时候,KEY_Scan函数将不支持连续按,扫描某个按键,该按键按

3、下之后必须要松开,才能第二次触发,否则不会再响应这个按键,这样的好处就是可以防止按一次多次触发,而坏处就是在需要长按的时候比较不合适。当mode为1的时候,KEY_Scan函数将支持连续按,如果某个按键一直按下,则会一直返回这个按键的键值,这样可以方便的实现长按检测。寄存器方法实现不支持连续按的关键代码,以及程序运行后的效果。由程序可知,给KEY_Scan函数输入的值为0,为不支持连按模式。e&/技术支持:www,cpenedv,com1G/丿宀育靈翼电子殺技骑廖公国11incmain(?oid)12E3(xauBkre、严、;2-SSztt.32ClockIni.(?);A系貌时钟栈置iel

4、ayiaxvf-);延时如始比LDTni匚);/孑初妁化导waS奉的更件接口BEE?Inxc);初妇址妇吗器磴口KEYTniH);初蚪优与兹靈连按的硬件接口1$LED口卄先*窗占打JT20wit11e(1)213(22teyKErScarKl;/縄到缝值23itkey)24RI25awicctiifcey)2药二(37a&aeWKUPPRES:揑刮集肓器28HEEPrBEEP:29brealc;3Ge共KEY2_PRES:32LEDO-rLEDO;32break;33uze:KEYLPRES:控制LIIkL觀转34LEDlLEDIp35breIc;3KEYOPRES:/RBI羟制IXDCrLE

5、Dl|9ff31LEDO-rLEDO;36L&1-!LEDir39%锂&19&aeliy_ni3(l口F:L31寄存器方法实现支持连续按的关键代码,以及程序运行后的效果。由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。key上_JtwLc*C4meludehtey怜卄1;/ALIirrEKlSlSTH52开发战实验3s打技龍趟入实垃9打技术玄舞:WW,opened?“10川广押市星真电子科技有龍公司ntiram(vcid.SIuEkey-1;延聘初姑比刼站化与LED延聘初姑比刼站化与LED連按的读件授初姑化M朝器弼初馆北写按議谨接的殛件卷口/走点託红灯d-tlAy_imt(72

6、JLEDImt();BZEPInit(;KEy_Imt();低詞=.;while(-)kty-KETScranGH门#到再值if(key)3wicch.Jceyu“亡KKUPFRES:把岂算三鹦SEP=!3EEP;bzeak:;caKE72_?ftES:控制LEOO|&KLE&O-LEDC;bAk;CA4KEyi_PRE5:-控艺匸EM酥转LE&l-LEDl;4工caaKEm_P血生:司?f珀斗匸匸亠LED0=!LEDG;LEDd=!LZDL;txeaic;3)采用库函数方法实现按键输入实验,参考STM32F1开发指南(精英版)库函数版本第8章。库函数实现不支持连续按的关键代码,以及程序运行后

7、的效果。由程序可知,给KEY_Scan函数输入的值为0为不支持连按模式。JfccyctZiluilnclude打技术支持::广州方墨it啤子科技畜很公司intmaxnluilnclude打技术支持::广州方墨it啤子科技畜很公司intmaxn(vos,d)i12aii:i::;1920址325:3272G293031333334353u8z严rStm3SClockInit(9;delay2iniT:(Zr-JLD_Imtt:9EEF_Iftlth;KE_Tnitu-LED0.:whileui蔡统时钟没宣延时初始比心列始比与LED逹接的砲纬接口H初始化竦遐聶雋口轩跆比与冬進连疾时贬萍袪口先垃亮红

8、灯kyKEYScan(i;if(key)switch*key)caseWKUS_FRES:控粧ii鸣养BEEP-rBEEPfbreak;caseKEY2_eRSi控豐让加耗捷LEDO=!:LEDObreaicrcaseKEY1_FRES:誓三:爵转LEDlILEDL;tixcaiticaeKEYQ_ERE5;-时芒岂h,1-訂狂山讥亠哑说;LED1-!LEDLfJbreaif;Jelsedelayma(-j);库函数实现支持连续按的关键代码,以及程序运行后的效果。由程序可知,给KEY_Scan函数输入的值为1,为支持连按模式。系统呼萍富賣延吋莉始乂前始化勻系统呼萍富賣延吋莉始乂前始化勻LED匡

9、按的運洋卷口初始比戒書噩雅口初始比与按吳连接的哽件捱口先虎呢红可tinuLju亡*lcffy_b:dEtrTEf(荃啟STM覽哥浅嚴虫牡dQ按犍输入实验5技*支持;www.openedvrg-odi10广州侖星異毛孑科技霍處艺罚u9key=:Slbi.3SCl-z-ctInij;le-layinzt(21;LED_Irt“;aEEF_Imitt);KEY_IniS(k;lldU=;wtkile(1y-KEY_ScantJ;/*匸巻Iif(keysviteii-tkeytagIffBB-PRE/AZ羟IHSW器BEE!BEerbE?alcrggKEX2_FR5i/控制LEDQ翻特LEDO-FLE

10、GO;caaeKEYL_PflS:/VLEDlfiffLEDl-fLEDi;biak?caaeKEI0_FRE3:同时妊制IXDOrLEtH啣转LED口LEDO;tXDi-rLXDl;Qwk7el雪亡delay_ms(10J;创新实验内容在实验步骤的基础上,通过修改代码,实现如下功能:1)按下任意一个按键,蜂鸣器响X下后停止,然后DSO闪烁y次,DS1闪烁z次(x、y、z分别为你学号的末3位的数);由我学号最后三位为119,所以蜂鸣器响1下后停止,然后DSO闪烁1次,DS1闪烁9次。rEgg陀99b負红eEJhtrt0I二To1.IT恥32乜mhu醫尉卸劄h到目目Q-r上hIIMmM甲F斗Am

11、AAi;lH0dru.-LnddkaHH.srrl33!3实验2定时器实验实验目的1)理解定时器工作原理;2)掌握STM32定时器的使用方法。实验设备1)一台装有Keil和串口调试软件的计算机;2)一套STM32F103开发板;3)STlink硬件仿真器。基本实验内容1)定时器中断实验,参考TM32F1开发指南(精英版)-库函数版本第13章,利用TIM3的定时器中断来控制DS1的翻转,在主函数用DS0的翻转来提示程序正在运行。通过本例程,理解定时器中断原理,记录关键代码,写出定时器中断过程:一开始程序会一直执行死循环里面的代码,让LEDO不断的亮然后熄灭来提示程序正在运行。当计数器计数500m

12、s之后,程序将跳出循环,去执行定时器里面的程序,实现DS1的反转:乂注支氐谭屯,L!7xMilIHIHI匕葩15辛奁亠岸-F平子子!USYSTEMu:乂注支氐谭屯,L!7xMilIHIHI匕葩15辛奁亠岸-F平子子.HJDMJL_m定时龄x中毎匪务理序voidTIM3_IRQJfandler(voi.-t)-.TTMj=f=iFjLf(TlM_GfltlTStfttU5(TIM3,TIM_IT_Update1=RESET:.心芒查二IM3昱萨丰2-左:生亏否TIK_CItazZTPcndingHit(TLM3,TIM.IT_Update);岸TTZHkT中士巧云LEDl-LZDl:2)PWM输

13、出实验,参考STM32F1开发指南(精英版)-库函数版本第14章,使用TIM3的通道2,把通道2重映射到PB5,产生PWM来控制DS0的亮度。通过本例程,理解定时器PWM输出功能的使用方法,记录关键代码,写出STM32定时器PWM输出实现过程:本实验通过重映射复用功能,将TIM3的通道2,把通道2重映射到PB5引脚,通过PWM的高低电平来控制DS0的亮度,电平为高电平时为亮,低电平时为熄灭,由主函数的程序可以看出,随着ledOpwmval的数越大,PWM输出的占空比就越大,此时灯就越亮。淘宝匡锤:乍者J淘宝匡锤:乍者J正占奇子if(dir)lediJuwKvaL+;3)定时器输入捕获实验,参考

14、STM32F1开发指南(精英版)库函数版本第15章,利用TIM5的通道1(PAO)做输入捕获,捕获PAO上高电平的脉宽(用WK_UP按键输入高电平),通过串口打印高电平脉宽时间。通过本例程,掌握定时器输入捕获实现过程,记录关键代码,并写出捕获输入实现原理:aLIEZITEKhao关注铁倩瓷处干台瞅倍号m-ZE点原子“免费狡戢E珀责料.丄州市呈具电孑即技电H公蓟作執正点庫于輻mrr软C-DtEFEir(W47,TIU15CBL:3LFTUItE5TJ.Q甜2425menaain(vold.iU32t豊Elp。;delayinilz|i;wlc_IxlarlT;iuartinit111S230)1

15、1自32创新实验内容在实验步骤的基础上,通过修改代码,实现如下功能:1)通过定时器相关功能实现控制蜂鸣器音调。查找资料理解蜂鸣器发出不同音调的控制原理,按下某个按键,实现“多来米发梭拉西”的发声;led.cWiiiM_timers_J5tm32nOM_trm.c25wbilc30L31delay_mB_?.;32for(a*1;a3138fort=jb-t.;+)訓E4GBEEE-!EEEP;41dsLayu*1Q;侗j43for(c.:c-jj?45469EEF=!BE?;47delayus(t-i.);49)4$50for(d*0;dlC-uO;d+)51i-52BEEP-f5EEP;3u

16、s(::);5415556tor(e0;erLLOPZOQn16,1C,QLS/l/lfp*jff示攝示搭电F0m_CD3R日USE;/设萱事体均巫色LCD93harw5kEin*疳疝130PPLtt廿肋匚-匚BW.yJU.;J;tpj!hnuhlTcf:LXD_SbCiiHQB115G.丄JIO.AiScxrtern-IflaacBdcac*51:J.|jLCBShOKHllus.115!?.!LEOp&dCM.,2)内部温度传感器实验,参考STM32F1开发指南(精英版)库函数版本第23章,利用STM32F1的内部温度传感器读取温度值,并在TFTLCD模块上显示出来。通过本例程,理解STM

17、32内部温度传感器的使用方法,记录关键代码,写出读取内部温度传感器温度值的实现过程:Egv-i-iricwr-:cLelay_xnlt;ihjjrvI匸.Pt1.eityfSrujpEgv-i-iricwr-:mif.LiJij|-LbIn3cOJLflilHxrOrr.i远IieLc什JFOI!flTcD-LOB.-RETjiaiwi,rizKPiEAii:JD-i-liaiwi,rizKPiEAii:LCn_inS4MSliii.+-1:Pi-iJ,匚eHfirlLOaLCDEhtAraJSuB卩口*-JIHjilkJx.J-创新实验内容在实验步骤的基础上,通过修改代码,实现如下功能:1)

18、用信号发生器输出正弦波、三角波信号(注意峰值小于!),接入某ADC通道,在TFTLCD上动态显示输入数据(也可以用图形方式显示);在实现1)中功能的基础上,用TFTLCD显示温度,并显示自己的班级、学号、姓名等信息。LCD_Fill(30,70,233+33,Tu+L6fWHITE);delayms230);LCD_SnowStrin.g-(33,73,230,16,16ry.5DI7ardOKrrJjLCDS?iowStrin.g-(33,50,230r16,16rFontUpdating.n);keyupdate_font(23r丄丄丄6空:);更新字库while(key)更新失败LCD_5haw5txig-(30flldf200f16r16fFontUp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论