嵌入式实验报告.docx

上传人:牧羊曲112 文档编号:4556698 上传时间:2023-04-27 格式:DOCX 页数:34 大小:770.79KB
返回 下载 相关 举报
嵌入式实验报告.docx_第1页
第1页 / 共34页
嵌入式实验报告.docx_第2页
第2页 / 共34页
嵌入式实验报告.docx_第3页
第3页 / 共34页
嵌入式实验报告.docx_第4页
第4页 / 共34页
嵌入式实验报告.docx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《嵌入式实验报告.docx》由会员分享,可在线阅读,更多相关《嵌入式实验报告.docx(34页珍藏版)》请在三一办公上搜索。

1、目录实验一跑马灯实验 1实验二按键输入实验 3实验三串口实验 5实验四外部中断实验 8实验五独立看门狗实验11实验七 定时器中断实验 13实验十三ADC实验15实验十五DMA实验17实验十六I2C实验21实验十七SPI实验24实验二一红外遥控实验27实验二十二DS18B20实验30实验一跑马灯实验一. 实验简介我的第一个实验,跑马灯实验。二. 实验目的掌握STM32开发环境,掌握从无到有的构建工程。三. 实验内容熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。通过ISP下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调

2、试。四. 实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。 软件部分:PC机 WINDOWS系统、MDK KEIL软件、ISP软件。五. 实验步骤1. 熟悉MDK KEIL开发环境2. 熟悉串口编程软件ISP3. 查看固件库结构和文件4. 建立工程目录,复制库文件5. 建立和配置工程6. 编写代码7. 编译代码8. 使用ISP下载到实验板9. 测试运行结果10. 使用JLINK下载到实验板11. 单步调试12. 记录实验过程,撰写实验报告六. 实验结果及测试源代码:int mam (void5trr.32_CLock_Init (9 ; /系统时钟设置 delay z

3、mt (72);甕时初始牝LED Init ;初始化与匸ED连接的硬件接口while (1)LED0-0;LED1=1;delay its (300);LEDO-1;LED1=O;delay_ju (300);两个灯LEDO与LED1实现交替闪烁的类跑马灯效果,每 300ms闪烁一次七. 实验总结通过本次次实验我了解了 STM32开发板的基本使用,初次接触这个开发板和 MDK KEILC 软件,对软件操作不太了解,通过这次实验了解并熟练地使用MDK KEIL软件,用这个软件来编程和完成一些功能的实现。作为STM32的入门第一个例子,详细介绍了 STM32的 10口操作,同时巩固了前面的学习,并

4、进一步介绍了MDK的软件仿真功能。实验二按键输入实验一. 实验简介在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向二. 实验目的熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在 中断服务程序和主程序间通信的方法。三. 实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯 速度及方向。使用JLINK下载代码到目标板,查看运行结果,使用 JLINK在线调试。四. 实验设备硬件部分:PC计算机(宿主机)、亮点 STM32实验板、JLINK、示波器软件部分:PC机 WINDOWS系统、MDK KEIL软件、IS

5、P软件。五. 实验步骤1在实验1代码的基础上,编写中断初始化代码2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序 3编写中断服务程序4编译代码,使用JLINK下载到实验板5.单步调试6记录实验过程,撰写实验报告六. 实验结果及测试源代码:int main(void)uB t;Stir.32_CLock_Init (9); 系统时甘设置delay_inir (72) *延島丐戈台化LED Initf);初始龙与LED连接的硬寻接口KEY_Init();初始化与按键连接的硬件接口while(1) t=KEY_Scan reak;case 2 : LED1- ! LED1 ;irea

6、k;case 3:LEDO=!LEDO;LED1LED1;break;else delayms(10);我们将通过MiniSTM32板上载有的3个按钮,来控制板上的2个LED,其中KEY0控制 LEDO,按一次亮,再按一次,就灭。KEY1 控制9 LED1,效果同 KEY0。KEY_2( KEY_UP), 同时控制LEDO和LED1,按一次,他们的状态就翻转一次。七. 实验总结通过本次实验,我学会了如何使用 STM32的10 口作为输入用。TM32的10 口做输入 使用的时候,是通过读取IDR的内容来读取I0 口的状态的。这里需要注意的是 KEYO和 KEY1是低电平有效的,而 WK_UP是高

7、电平有效的,而且要确认 WK_UP按钮与 DS18B20的连接是否已经断开,要先断开,否则 DS18B20会干扰 WK_UP按键!并且 KEYO和KEY1连接在与JTAG相关的I0 口上,所以在软件编写的时候要先禁用 JTAG 功能,才能把这两个10 口当成普通I0 口使用。实验三串口实验一. 实验简介编写代码实现串口发送和接收,将通过串口发送来的数据回送回去。二. 实验目的掌握STM32基本串口编程,进一步学习中断处理。三. 实验内容编写主程序,初始化串口 1,设置波特率为9600,无校验,数据位8位,停止位1位 编写中断服务程序代码实现将发送过来的数据回送。四. 实验设备硬件部分:PC计算

8、机(宿主机)、亮点 STM32实验板、JLINK、示波器。 软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。五. 实验步骤1编写串口初始化代码2编写中断服务程序代码3编译代码,使用JLINK或ISP下载到实验板4记录实验过程,撰写实验报告六. 实验结果及测试源代码:while(1if (US A=T_RX_5 TA 0 x 2 0)len-USART_RX STADx3f;/得到此次接收到的数据长度 princf (rn?fe发送的消息为:rn);for(t=1;t DE -US ART_RX_BUE t;while ( fUSJLRTl-SB0X40)0;

9、/等待发送结束printf (Hnn,t拯入挨彳丁 USART_RX_STS-0 ;else匸丄 ices+;if(times%5000=0)printC rArnMiniSTH32FF发槐 聿实lXrXn); printf正点原子值AL工ENTEPCi?iiiAni?n”);if (time3%2 00=0)printf入数捋以回车犍结束rn);If (times%30=0)LEDO=!LEDO;/lXl煤LED.提示系统正在运行. delay ic.s (10);把代码下载到 MiniSTM32开发板,可以看到板子上的LEDO开始闪烁,说明程序已经在 跑了。接着我们打开串口调试助手,看到如

10、下信息:证明串口数据发送没问题。接着,我们在发送区输入上面的文字,输入完后按回车键。然 后单击发送,可以得到如下结果:七. 实验总结通过本次实验,我进一步了解了串口的使用,学会了通过串口发送和接收数据,将通过串 口发送来的数据回送回去。该实验的硬件配置不同于前两个实验, 串口 1与USB串口默 认是分开的,并没有在PCB上连接在一起,需要通过跳线帽来连接一下。这里我们把P4的RXD和TXD 用跳线帽与 P3的PA9和PA10连接起来。实验四外部中断实验一. 实验简介STM32的10 口在本章第一节有详细介绍,而外部中断在第二章也有详细的阐述。这里 我们将介绍如何将这两者结合起来,实现外部中断输

11、入。二. 实验目的进一步掌握串口编程,进一步学习外部中断编程,提高编程能力。三. 实验内容初始化I0 口的输入,开启复用时钟,设置10与中断的映射关系,从而开启与10 口相对 应的线上中断事件,设置触发条件。配置中断分组(NVIC),并使能中断,编写中断服务函数。四. 实验设备硬件部分:PC计算机(宿主机)、亮点 STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。五. 实验步骤1. 编写中断服务程序代码2. 使用ISP下载到实验板3. 测试运行结果4. 记录实验过程,撰写实验报告六. 实验结果及测试源代码:系统时钟设置延时

12、初始化串口初始化耕始花与LED连接的硬件接口外部中断初始化int mam (void 卜Strr.32_CLoc-厂 AUTO 厂 DEC 周期:hooo毫秒岌送TOP|RKOTX:O计數器青割打开文周发送文住J联系我软件升臥正点原子制作们万关闭程用厂格式显示 r HEX r另存为DEC七. 实验总结首先需要将10设置为中断输入口:1)初始化I0 口为输入。2)开启I0 口复用时钟,设置I0 口与中断线的映射关系。3)开启与该I0 口相对的线上中断/事件,设置触发条件。4)配置中断分组(NVIC ),并使能中断。5)编写中断服务函数。这一节,使用的是中断来检测按键,通过WK_UP按键实现按一次

13、LEDO和LED 1同时翻转,按 KEYO翻转LEDO,按 KEY1翻转LED1。试验中外部中断函数不能进入的原因分析1)GPIO或者AFIO的时钟没有开启。2)GPIO和配置的中断线路不匹配。3)中断触发方式和实际不相符合。4)中断处理函数用库函数时,写错,经常可能出现数字和字母之间没有下划线。5) 外部中断是沿触发,有可能不能检测到沿,比如中断线是低电平(浮空输入),触 发是下降沿触发,可能会出现一直是低电平 ,高电平的时候是一样的情况,电平持续为高 电平。6)没有用软件中断来触发外部中断,调用函数 EXTI_GenerateSWInterrupt;,因为软件 中断先于边沿中断处理。实验五

14、独立看门狗实验一. 实验简介独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗 口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序 非正常的过迟或过早的操作。二. 实验目的通过编程,编写一个独立看门狗驱动程序三. 实验内容启动STM32的独立看门狗,从而使能看门狗,在程序里面必须间隔一定时间喂狗,否则 将导致程序复位。利用这一点,我们本章将通过一个LED灯来指示程序是否重启,来验证STM32的独立看门狗。四. 实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK

15、KEIL软件、ISP软件、串口调试助手五. 实验步骤1. 参考教材独立看门狗部分,编写独立看门狗驱动程序。建立和配置工程2. 编写代码3. 使用ISP下载到实验板4. 记录实验过程,撰写实验报告六. 实验结果及测试源代码:jnt irin (void)Strr.32 Clock Init (9);系统时神设置delay_init(72);延时初始化uart iniu(72r 9600J ; 串口初始化RED Init():初始化与让D達接的硬牛接口);delay ms(300):按確初始化 让人看得到灭IWDG_Inic(,625);与分频薮为匕重载直为石25#溢出时阖为口LEDG0 ;点亮E

16、ED0while 1)1if (KEY_5aan() =-3 IWDG_Feed ( ) ”/如果WK_UF按下.则喂狗delay ms(1Q);在配置看门狗后,看到LEDO不停的闪烁,如果WK_UP按键按下,就喂狗,只要WK_UP 不停的按,看门狗就一直不会产生复位,保持LEDO的常亮,一旦超过看门狗定溢出时间(Tout)还没按,那么将会导致程序重启,这将导致 LEDO熄灭一次。七. 实验总结通过本次实验,我掌握了启动独立看门狗的步骤:1)向 IWDG_KR 写入 0X5555。2)向 IWDG_KR 写入 0XAAAA。3)向 IWDG_KR 写入 0XCCCC。通过上面3个步骤,启动ST

17、M32的看门狗,从而使能看门狗,在程序里面就必须间隔 一定时间喂狗,否则将导致程序复位。利用这一点,本章通过一个LED灯来指示程序是否重启,来验证STM32的独立看门狗。在配置看门狗后,LEDO将常亮,如果 WK_UP 按键按下,就喂狗,只要 WK_UP不停的按,看门狗就一直不会产生复位,保持LED 0的 常亮,一旦超过看门狗溢出时间(Tout)还没按,那么将会导致程序重启,这将导致 LED 0熄灭一次。实验七定时器中断实验一. 实验简介STM32的定时器是一个通过可编程预分频器(PSC)驱动的16位自动装载计数器(CNT) 构成。STM32的通用定时器可以被用于:测量输入信号的脉冲长度(输入

18、捕获)或者产生输 出波形(输出比较和PWM)等。使用定时器预分频器和 RCC时钟控制器预分频器,脉冲 长度和波形周期可以在几微秒到几毫秒间调整。STM32的每个通用定时器都是完全独立的,没有互相共享的任何资源。二. 实验目的熟练掌握定时器中断,学会对定时器中断的编程操作。三. 实验内容使用定时器产生中断,然后在中断服务函数里面翻转LED1上的电平,来指示定时器中断的产生,修改中断时间。四. 实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。五. 实验步骤1. 参考教材定时器中断部分,编写

19、定时器中断的驱动程序。2. 编写主程序3. 编译代码,使用JLINK或ISP下载到实验板4. 记录实验过程,撰写实验报告六. 实验结果及测试源代码:int main(void)St;in32 Clock Init ;二系迈时专二设置delay_init(72); uarc init(72,9600; LED Init ;延时初始化聿口初始化初始化与LED谨接的硬件接口Timerx_Init (4999,7199) ;/lOKhz0iJ计数賀宝 计数到5000为500ms while (1)LED0=:!LED0; delay ir.s (200);七. 实验总结通过本次实验,认识到时间中断来控

20、制LED灯的闪烁,同时也可以将时间中断应用到控制其他的程序块。以TIME3为例产生中断的步骤为1)TIM3时钟使能。2)设置 TIM3_ARR 和 TIM3_PSC 的值。3)设置TIM3_DIER允许更新中断。4)允许TIM3工作。5)TIM3中断分组设置。6)编写中断服务函数。在中断产生后,通过状态寄存器的值来判断此次产生的中断属于什么类型。 然后执行相关 的操作,我们这里使用的是更新(溢出)中断,所以在状态寄存器 SR的最低位。在处理 完中断之后应该向TIM3_SR的最低位写0,来清除该中断标志。实验十三ADC实验一. 实验简介通过DAC将STM32系统的数字量转换为模拟量。使用 ADC

21、将模拟量转换为数字量二. 实验目的掌握DAC和ADC编程。三. 实验内容编写代码实现简单的DAC单次发送编写代码实现ADC采集DAC发送的数据,并发送到串口四. 实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。五. 实验步骤1编写主程序2编译代码,使用JLINK或ISP下载到实验板,使用串口调试助手观察数据3记录实验过程,撰写实验报告六. 实验结果及测试源代码:while(l)adcx=Get_Adc(;printfadcx) ;/V 显示耳DU白勺宣temp-(floats adcx

22、*(3.3/409);adcx=teir;printfadcx);显示电压值tempadcx;匸己 icp *=10Cj ;printfteirj;);LED! LEDO;delay ms(250):七. 实验总结本节将利用 STM32的ADC1通道0来采样外部电压值,并在串口调试助手中显示出 来。步骤如下:1)开启PA 口时钟,设置PA0为模拟输入。2)使能ADC1时钟,并设置分频因子。3)设置ADC1的工作模式。4)设置ADC1规则序列的相关信息。5)开启AD转换器,并校准。6)读取ADC值。在上面的校准完成之后,ADC就算准备好了。接下来我们要做的就是设置规则序列 0里 面的通道,然后启

23、动 ADC转换。在转换结束后,读取 ADC1_DR里面的值。通过以上几个步骤的设置,可以正常的使用STM32的ADC1来执行AD转换操作。通过本次实验的学习,我们了解了 STM32 ADC的使用,但这仅仅是STM32强大的ADC功 能的一小点应用。STM32的ADC在很多地方都可以用到,其 ADC的DMA功能是很不 错的,实验十五DMA实验一. 实验简介直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数 据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了 CPU的资源来做 其他操作。二. 实验目的熟练掌握DMA编程,学会对EPC02的读写操作,学习双

24、缓冲兵乓操作,理解互斥资源。 提高编程能力。三. 实验内容利用外部按键KEYO来控制DMA的传送,每按一次KEYO, DMA就传送一次数据 到USART1,然后在串口调试助手观察进度等信息。LEDO还是用来做为程序运行的指示灯。这里我们使用到的硬件资源如下:1)按键 KEY0。2)指示灯LEDO。3)使用串口调试助手观察数据四. 实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、网络调试助手五. 实验步骤1编写主程序2编译代码,使用JLINK或ISP下载到实验板,使用串口调试助手观察数据 3记录实验过

25、程,撰写实验报告六. 实验结果及测试源代码:printfXnPress KEYO To Start ?nn); Jsizeof(TEXT_TO_SENE);for (i-0;i=j) /加入换行苓i fmaskiSendBf f= 2 xli;t-0; elseCR3-17;/使能丰口 1 的 DMA 发送HYDHA Enable (DMA1 Cbann亡】4);.幵亍三;专嚮! 等特DMA传籀完成7此时我们来做另夕卜一些事,点灯 实际竝用中传锭数掲期间,可以执行另外的任务while (1)IFCR; /;W璟通道4传输完成押志break; pro=DMAl_Channe 14-CNDTR;

26、/ 埠至当 W 还甕余务少-卜?JIi+;delay res (10);if (i=20) 一 _匚ED0=!LED0;/St系统正住运f伴随LEDO的不停闪烁,提示程序在运行。我们打开串口调试助手,然后按 KEY0,可 以看到串口显示如下内容:七. 实验总结本节利用STM32的DMA来实现串口数据传送,DMA通道的配置需要:1)设置外设地址。2)设置存储器地址。3)设置传输数据量。4)设置通道4的配置信息。5)使能DMA1通道4,启动传输。通过以上5步设置,我们就可以启动一次 USART1的DMA传输了。DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当 CPU执 行完

27、当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由 DMA控制器输出 读写命令,直接控制RAM与I/O接口进行DMA传输。在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送, 在传送过中不需 要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束 信号。当I/O接口收到结束信号后,一方面停 止I/O设备的工作,另一方面向CPU提出 中断请求,使CPU

28、从不介入的状态解脱,并执行一段检查本次 DMA传输操作正确性的 代码。最后,带着本次操作结果及状态继续执行原来的程序。由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和 恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路, 使CPU的 效率大为提高。实验十六I2C实验一. 实验简介编程实现对使用I2C接口的EPC02芯片进行写和读操作。二. 实验目的熟练掌握I2C编程,学会对EPC02的读写操作。三. 实验内容编写I2C驱动程序,使用驱动程序初始化 EPC02,判断设备正确性。写256个0x5A到EPC02,读出并发送给串口,通过串口调试助手判

29、别是否读到的都是0x5A.四. 实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。五. 实验步骤1参考教材I2C部分,编写I2C驱动程序。2编写主程序3编译代码,使用JLINK或ISP下载到实验板4记录实验过程,撰写实验报告六. 实验结果及测试伴随LEDO的不停闪烁,提示程序在运行。我们先按下KEY0,可以看到如下所示的内容, 证明数据已经被写入到24C02了。接着我们按KEY2,可以看我们刚刚写入的数据被显示出来了,如下图所示: 砒正点原子制作vi占| |回源代码:_whileTlke

30、y=KEY_5can();if (keylJ/ZKEYO,写入2忙02 /KEY_UP按下#读取字符串并显示( _printf(Start Read 24CO2 . n;AT24CXX Read (0f datateir.|:, SIZE;printf (nThe Data Beaded Is: nn) ;/提示传迭芫或 printf tsXn, darateir.p); / /显示读至L 的字待串1+;delay_ms(10):if (=20) _ _LEDOJLEDO;/;提示系统正在运行-0;七. 实验总结IIC是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控

31、IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达 400kbps以上。IIC总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答 信号。这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。程序在开机的时候会检测 24C02是否存在,如果不存在则会在TFTLCD模块上显示错误 信息,同时LED0慢闪。大家可以通过跳线帽把 PC11和PC12短接就可以看到报错了。 通过本次实验,我掌握了如何使用IIC写入与读出数据,学习了编写I2C驱动程序,使用 驱动程序初始化EPC02,判断设备正确性,以及如何在助手上显示。实验十七SPI实验一. 实验简介编程实现对S

32、PI接口的W25Q64进行读写操作。二. 实验目的熟练掌握SPI编程,学会对的W25Q64读写操作。三. 实验内容1. 编写SPI驱动程序2. 初始化SPI接口3. 读取SPIFLASH的ID,如果正确继续,否则报错4. 向SPIFALSH地址0X12AB00开始写一串字符,再读出比较判断是否与写入的一致5. 向SPIFALSH地址0X12AB00开始写连续256个字节的0x5A,然后读出并发送给串口, 通过串口调试助手判别是否读到的都是 0x5A.四. 实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软

33、件、串口调试助手。五. 实验步骤1参考SPI及SPI FLASH部分,编写SPI及SPI FLASH驱动程序(可参考书上代码)。2编写主程序3编译代码,使用JLINK或ISP下载到实验板4记录实验过程,撰写实验报告六. 实验结果及测试源代码:While (1)k:ey=KEY_Scan (;if/XEYOTfFLASHprincf(Scazr 诵工i匸亡 W25X16*.* An);SPI Flash Wxite(u6*TEXT_Bvfferr10OOfSIZE; /1000#节处开盛宜入51云长度俞数据 _ printf (WSSXie Write Finished! n ; / 51 示传

34、送芫 或if (cey=3) /WK_UP按下”读取写入的字符传字符串井显示 printf (HS匸良工匸 Read W25X16. ., . . Xn*1;SPI Flash Read(datatemp,1000fSIZE;|/./iooaiE址处笄始,读tfasizE个字节_prin 匸土(ThE Data Res.de d Is :“):遅于賢送完我printf (%snn f datater,p) : /显示读至的字存宝1+;delay_r,s (10);if (i=20)LEDO=FLEDO;/ /琨示系统正在运亡1=0;伴随LEDO的不停闪烁,提示程序在运行。我们先按下KEYO,可

35、以看到如图13.1742所 示的内容,证明数据已经被写入到 W25X16 了。接着我们按KEY2,可以看我们刚刚写入的数据被显示出来了,如下图所示:七. 实验总结SPI接口主要应用在 EEPROM, FLASH,实时时钟,AD转换器,还有数字信号处理器 和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的 管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32也有SPI 接口。SPI的设置步骤:1)配置相关引脚的复用功能,使能 SPI时钟。2)设置SPI工作模式。3)

36、使能SPI。程序在开机的时候会检测 W25X16是否存在,如果不存在则会在TFTLCD模块上显示错 误信息,同时LED0慢闪。大家可以通过跳线帽把PA5和PA6短接就可以看到报错了。 通过本实验,我掌握了编写SPI程序写入和读取 FLASH的方法,掌握了对学会对的W25Q64读写操作。对STM32开发板有了进一步的了解。实验二一红外遥控实验一. 实验简介编程实现通过在 ALIENTEK Mi ni STM32开发板上实现红外遥控器的控制二. 实验目的掌握编程实现红外遥控控制开发板的方法。三. 实验内容1. 编写红外遥控驱动程序2. 编写红外遥控程序代码3. 使用红外遥控控制开发板四. 实验设备

37、硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK软件部分:PC机 WINDOWS系统、MDK KEIL软件、ISP软件五. 实验步骤4. 编写红外遥控驱动程序5. 编写红外遥控程序代码6. 编译代码,使用JLINK或ISP下载到实验板7. 记录实验过程,撰写实验报告六. 实验结果及测试源代码:if(Remote_Rdv _irey Remote_Process ();switch (keycase 162: printf(CH-Xn);break; case 92 :prin匸fcase 226:printf();break; case 2 :printfmRI&HTnn);b

38、reak;case 34:printf(n匚EFTn)亡ak; case L54 :printf (PLAYXn*1) ;break;case 22:printf(-nn);break; case 163:printf(+nH);break;case L44:printf(;break; case 152 :printf (r,100+nFT) ;break;case L6:printf(iOO+Xn);break; case 14:printf(OXn);break;case S :printf (T, lnn) ;break; case 2 4 :printf (th2 Kn11) ; b

39、reak;case 122:printf psXn);break; case 16:prin匸f (4rVJcase 56:prm匸: (Sn”) ;brga_k; case 90 :printf (Xn17) ;break; case eGiprinLf;break;case - 4 :printf (T,3n* ;break; case S2:printf(SXn);break;使用串口调试助手观察数据七. 实验总结红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成 本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用 到计算机系统中。

40、通过本节实验,我学习到了如何编程使用红外遥控控制, 在本程序中只是简单地输出一个 数值,在以后的应用中可以实现更强大的功能, 比如用红外远程输入控制开发板进行一些 操作。对STM32有了进一步的认识。实验二十二DS18B20实验一. 实验简介一. 在ALIENTEK MiniSTM32 开发板上,通过 DS18B20来读取环境温度值。二. 实验目的巩固SPI编程。掌握使用感应器获取环境温度的方法。三. 实验内容1. 复位脉冲和应答脉冲2. 写时序3. 读时序四. 实验设备硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK软件部分:PC机 WINDOWS系统、MDK KEIL软件、

41、ISP软件五. 实验步骤1. 参考教材DS18B20编程部分,编写DS18B20驱动程序2. 编写主程序3. 编译代码,使用JLINK或ISP下载到实验板4. 记录实验过程,撰写实验报告六. 实验结果及测试源代码:while (DSieB20_Init ()初sB 910512320,兼检迎 1 汨昭 _printfnnDS13B20 Check Failed!;delay_ir.s (500);pxi口匸土 (MnPl住曰吕皀 Check.*) /delains (500;LED0=T LEDO ;/DSOXl :烁printf(nDS18B20 Ready!nn):while (1)terr.p=D5ieB20_Geu_TemF ();pxin匸士( Temperate : : %dCnn * terr; delay_iL5 200);LEDO=TlEDO; F/DCi 闪烁使用串口调试助手观察数据:七. 实验总结DS18B20是由DALLAS 半导体公司推出的一种的“一线总线”接口的温度传感器。与 传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口 简单的数字化温度传感器。通过本次实验,我认识到 STM32的强大,在开发板上可以添加其他感应器从而实现更强 大的功能。添加了 DS18B20后的开发板可以感应外界的温度,通过公式计算显示出来。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号