嵌入式系统实验报告_第1页
嵌入式系统实验报告_第2页
嵌入式系统实验报告_第3页
嵌入式系统实验报告_第4页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式系统实验报告 嵌入式系统实验报告 学 :号 姓 :名 班 程工息信子电 31:级 指导老师: 苏州大学 院学息信子电 2021 年 12 月 实验一: 一个灯得闪烁 1 、 实验要求 实现 pf61端口所连接得任意一个 led 灯点亮 、电路原理图 图 led 灯硬件连接图 3 、软件分析 rcc_conguraon(); / 配置系统时钟 / gpio_configuraion(); */ / 化始初口 o oip置配 );(r ;ffx0 rdofopg / 3亮点 - 0=8p dela(00000); gpo-r = xffff; / * 3d 灭熄 1=fp ;)0001(al

2、ed4 、实验现象 通过对pio得操作,可以使 led3 闪烁 5 、 实验总结 这就是第一次使用 st32 开发板,主要内容就是对 io 端口进行配置,点亮与 io端口相连接得led灯,闪烁周期为2.通过本实验对m2开发板得硬件原理有了初步了解. 实验二:流水灯 1 、实验要求 实现f610 端口所连接得 5 个d 灯顺次亮灭 、电路原理图 图 1 流水灯硬件连接图 3 、软件分析in ain(voi) rcc_onfigurati();/* 配置系统时钟 / 置配 /;)(noitaruginocoipgpio io 口初始化 / fr(;;) gpfdr 0xfbf; / pf0 - 点

3、亮ld1 * dlay(500000); pofodr = 0x; * pf7=0 - 点亮d2 dey(5000000); gpio-odr = 0xfef; */ / 3de亮点 0=8fp elay(50000); ;df0 = ro-opg / pf= 点亮 le4 / ;)000(yale pio-odr = 0xfbff; / pf10 - 点亮 led5 */ 4 、实验现象 led1led5 依次点亮,亮灭得时间间隔都为 1s。 5 、实验总结 本次实验对 stm32 开发板得pi端口进行进一步学习,通过程序可以实现流水灯得闪烁。 实验三: 单级外部中断 1 、实验要求 按下某

4、个按键,触发中断,中断服务程序改变 le灯状态 2 、电路原理图 图 3 sw1 硬件原理图 3 、软件分析 nt ain() ;)(noitarugifoccr * 配置系统时钟 ;)(noitaruginc_oig */ /* 化始初口 oi gi_wrte(gpiof,0xfff); /* 全灭 / ;)00(yaled )(elihw if(gpireaiputdatit(gpio, gpo_i_8)=0) / 如果1 pa / ;)6_nip_ip ,pg(tbte_oipg*/ * 亮点dl delay(0x1fff); ;)6_nip_oipg ,foipg(stieer_oip

5、g / e1 熄灭 / eda(01ffff); 、实验现象 原来 5 个 le灯都处于熄灭状态,按下 s1,触发中断程序,le点亮。 5 、实验总结 通过本次实验,可以对某一状态通过外部中断,改变其当前状态。 实验四: 多中断嵌套 1 、实验要求 按下某个按键,触发中断,中断服务程序改变 l灯状态 2 、电路原理图 图 4 s1,s2,w硬件原理图 3 、软件分析 i_prirtgruonfi(ic_prioritgrou2); nicinistrucue、nvic_irqcannel = ti0_irchann;/ 为源断中定设p0 nvi_inistruture、ni_rqchnnlpr

6、eemptipriorty = 0; /中断占优先级为 0 vic_nisruct、nvic_irqchnnel = ex3_irqchne; /设定中断源为 pd3 nvicnitsructre、ni_irqannelpeemprority = 1; /中断占优先级为 1 nvic_itstcur、nc_iqchnel exti9_5irqhannl; /设定中断源为 p8 nviitsruture、vic_rqchaelpreemptonprioity = 2; /中断占优先级为 2 void xt0_irqhdlr(vid) int i=0; if(etiettsttus(ext_lin

7、0) != set) f(i=0;10;i+) io_write(gpiof,0xfff); gpi_seits(gpiof, pio_pi_6); /* l1 点亮 / delay(0x5fffff); gpio_reeis(if, gpio_p_6);/* led1 熄灭 / dea(5fff); ext_clritpnigbit(exi_line0); voi ext3_rqhandr(voi) int =0; if(eti_getisatus(tiline3) != eset) for(i=0;i0;i+) gpio_wite(pif,0xffff); gpi_etbis(gpiof,

8、 gpi_pi_7);/ le2 点亮 deay(x5ffff); girebits(piof, gpi_pn);/ led2 熄灭 */ dely(0x5ff); exti_clearitpdingbit(ei_lne); void ext9_5_irhandler(vod) int i=0; if(exti_geitsus(xti_li) ! eset) for(i0;i10;i+) go_rte(gpio,0xfff); gpi_setbit(gpof, pio_pi_8); */ / 亮点 3deldelay(0x5fffff); gi_restits(gpif, pio_pin_);

9、* led3 熄灭 / lay(0x5ff); exticlearitpndinbi(xtiline8); 4 、实验现象 中断优先级从高到低依次为:s,s,sw1 原来 5 个d 灯都处于熄灭状态,按下 s1,ed3 应该闪烁 10 次,当其闪烁 5 次后按下 sw2,ld2 也应该闪烁 10 次,当其闪烁次后按下w3,led1也应该闪烁 1次,则当ed1 闪烁完 10 次后,led2 继续闪烁 6 次,之后e继续闪烁 5 次。 5 、实验总结 通过本次实验,可以对ed 状态实行中断嵌套,由以上实验现象,得出以下结论:高中断优先级可以打断低优先级,中断系统正在执行一个中断服务时,有另一个优先

10、级更高得中断提出中断请求,这时会暂时终止当前正在执行得级别较低得中断源得服务程序,去处理级别更高得中断源,待处理完毕,再返回到被中断了得中断服务程序继续执行,反之,低中断优先级不可以打断高优先级。 实验五:t m 得基本应用 、实验要求 tim2 定时器将 led 灯定时点亮与熄灭一定得时间 2 、电路原理图 3 、软件分析 im_cd(i2, eable); / etuoc elane 2mitt_imesestruture、t_rid = 1999; t_timeasetructur、tmpeslr = 3599; /定时时间为 1s id t2_irqane(void) imclaipe

11、ndibit(tim2, m_itudt); gio_witeb(gpio, gio_pin6,(bitcin)(1pi_eadoutputdatbt(piof, g_i6)); 4 、实验现象 ld1 灯按照 1s 得定时时间不断闪烁 、实验总结 通过本次实验,可以实现对 l灯进行定时控制其闪烁,而不需要延时函数控制了,定时时间较为精准。 实验六:im2, im ,tim4 多定时器得应用 1 、实验要求 利用 tim2,tim3,tm4 定时器使ed 灯以不同得频率闪烁 2 、电路原理图 3 、软件分析 nviinitstctre、nv_irqchannel = tim2_irqhanne

12、l; nc_inistrucr、nic_cnnelpreptionproity = ; vi_iitstructur、n_iqchannel = tim3_irqchan; nvic_itscu、ic_ircannlpremptnrority 1; nvicinttrutre、nvic_irqchanel i_qchannel; vc_inistructue、nvic_irqchannlpreptionpioity = 2; 此处比上一个实验增加了 2 个定时器,同时又增加了一个优先级 4 、实验现象 中断优先级从高到低依次为:tm2,im3,tm4 首先 le1 以 1s 得定时时间闪烁 5

13、 次,之后 led2 以s 得定时时间闪烁次, 最后 led3 以 3s 得定时时间闪烁 5 次 、实验总结 利用定时器可以同时使 led 灯按照不同得频率闪烁,但就是为了现象明显,可以加一个优先级,分别观察现象。 实验七:串口sar 读取 cpu 得 得 id 号 1 、实验要求 通过st1 读取 cpu 得 9 bit id 、电路原理图 图 开发板 ut 原理图 3 、软件分析 d get_chipid(vod) */ /* di 片芯取获 ;)0ff1x0() 23u ( = dieuqii/ / 节字高 ;)ce7ffff1x0() 3 (* 1diuqinuih ;)8eff1x0

14、()* 23u (* = 2dieunuh /* 低字节 / oid usart_conigaion(void) usar_nittyde sart_initstruue; usat_intstuctue、utbadrt = 1500; art_itstruture、uat_wrdength srt_worlgth_b; uat_inttuue、usart_obis usart_stopbt_1; usrinitstrure、utparity = usa_aitno; srt_inittrcture、usarthwareflwcotr = st_arwareflowcontrol_one; u

15、sart_iisrucur、usart_moe = uartoe_rx | usar_mdetx; usr_int(usart1, srt_initstrture); sar_itcofig(usar1, usrite, enable); ustconig(uart1, ar_itrxne, eabl); usart_clarflag(usr1, usart_flatc); sart_cm(sar1, enal); / nable sat1 */ 4 、实验现象 p9 连接得就是sat1 tx,p10 连接得就是 usat1 x,再通过串口调试助手就可以在电脑上面显示出u 得 id 以及 fl

16、as容量大小。 5 、实验总结 本次实验实现了串口与c 机得传输,可以通过 urt1 将 cpu 得 id 在电脑上显示出来。 实验八:异步通信 usart2 得重映射 1 、 实验要求 实现异步通信 usart得重映射,将数据传送到 pc 机上 2 、电路原理图 图 开发板 urt 原理图 3 、软件分析 oid gpioconiguan() / /* 化始初口 oi gpio_inittyde gp_iitstucture; gio_nitstructure、gio_in = gpio_in_5; ua t2 tx pd5 */ gpioiisutre、gio_mde = gpio_moe_a_p; /* p 05 - jp7 wr / gpiinitrcue、gpio_pee iopeed0mhz; ;)utcrtstin_oipg ,dipg(tii_ipg ;)ebane ,2tas_paer_opg(ifnocpaniopg / ;6_np_ig = n_oipg、utcurttini_oipusar2 - pd06 */ gpi

温馨提示

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

最新文档

评论

0/150

提交评论