嵌入式实验报告二(精选合集)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式实验报告二(精选合集)
第一篇:嵌入式实验报告二
嵌入式实验报告二二
实验时间
2013/6/9
报告人
一、实验目的:
1.学习cygwin;2.通过上机实验,使学生验证、巩固和充实所学理论知识,加深对相关内容的理解,了解嵌入式Linux 的工具链,掌握基于 Linux 的 C 程序设计。
二、实验要求:
1.安装 cygwin;2.学习 GCC 的使用和 Makefile 的编写。
3.编程实现文件拷贝功能。
三、问题:
1.简述 Gcc 的常用选项并举例说明。
Gcc 基本使用格式:$ gcc
[ 选项 ]
<文件名> 命令行中 gcc 表示我们是用 gcc 来编译我们的源程序,[选项]表示我们要求编译器给我们输出的文件为何种类型,相当于一种约束。
常见选项:
-o :
:
将源文件经过gcc 处理过的结果输出,这个结果文件可能是预处理文件、汇编文件、目标文件或者最终的可执行文件。
比如:gcc hello.c –o hello 把源文件 hello.c 经 gcc 编译后生成可执行的文件输出为 hello-E :
:
只激活源程序的预处理,这个不生成文件,你需要把它重新定向到一
个输出文件里面。
比如:gcc –E hello.c –o hello.i 把源文件 hello.c 经gcc 预处理后的文件输出为 hello.i。
-c :
:
只激活源程序的预处理,编译,和汇编,也就是他只把程序生成 obj 文件。
比如:gcc –c hello.c –o hello.o 把源文件 hello.c 经 gcc 预处理,编译,和汇编后的文件输出为 hello.o。
-S :
:
只激活源程序的预处理和编译,就是指把文件编译成为汇编代码。
比如:gcc –S hello.c –o hello.s 把源文件 hello.c 经 gcc 预处理,编译后的文件输出为 hello.s。
-g :
:
表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息。
2.简述 Makefile 编写规则,举例说明。
makefile 编写规则:
(1)以“#”开始的行为注释
(2)文件依赖关系为:
target: components //表示的是依赖关系 TAB rule //编写规则,TAB 表示那是一个 TAB 键例如有如下:
/* main.c */
#include “mytool1.h”
#include “mytool2.h”
int main(int argc,char **argv)
{
mytool1_print(“hello”);
mytool2_print(“hello”);
}
/* mytool1.c */
#include “mytool1.h”
void mytool1_print(char *print_str)
{
printf(“This is mytool1 print %sn”,print_str);
}
/* mytool2.c */
#include “mytool2.h”
void mytool2_print(char *print_str)
{
printf(“This is mytool2 print %sn”,print_str);
} /* mytool1.h */
#ifndef _MYTOOL_1_H
#define _MYTOOL_1_H
void mytool1_print(char *print_str);
#endif
/* mytool2.h */
#ifndef _MYTOOL_2_H
#define _MYTOOL_2_H
void mytool2_print(char *print_str);
#endif 可以这样来编译
gcc-c main.c
gcc-c mytool1.c
gcc-c mytool2.c
gcc-o main main.o mytool1.o mytool2.o
这样的话我们也可以产生main 程序,而且也不时很麻烦在我们执行make 之前,我们要先编写一个非常重要的文件——Makefile。
对于上面的那个程序来说,可能的一个 Makefile 的文件是:# this is the Makefile of main
main:main.o mytool1.o mytool2.o
gcc-o main main.o mytool1.o mytool2.o
main.o:main.c mytool1.h mytool2.h
gcc-c main.c
mytool1.o:mytool1.c mytool1.h
gcc-c mytool1.c
mytool2.o:mytool2.c mytool2.h
gcc-c mytool2.c
第二篇:嵌入式实验报告
《嵌入式Linux实验开发》
——实验
二、安装和备份Linux 系统
——实验
三、ADS 集成开发环境的使用——实验
四、在虚拟机中安装linux ——实验
五、虚拟机和主机数据通信
——实验
六、宿主机和目标机通信
姓名:吉博博
班级:软件1102
学号:1111612005
实验日期:2013年9月28日
心得体会:
今天试验收获挺丰富的,但还有很多的疑问。
第一点、其中试验二,安装和备份linux系统存在的问题最多。
我基本上没有搞清楚它的操作原理,感觉糊里糊涂的。
怎么给开发板安装linux系统?实验指导上面写的貌似很粗糙,看了好多遍没有明白。
就像第一步中有个“把开发板设置为Nor Flash 启动,系统更新和安装完毕后设置为Nand Flash 启动”。
不知道为什么要这样做等。
再就是进入Bios 启动菜单,选择f 对Nand Flash进行分区。
不是很清楚……
还有就是下边有一个安装bootloader,从网上说的来看,这个类似于操作系统的BIOS,总体来说,对开发板怎么安装一个系统这个问题没有滤清。
第二点就是ADS集成开发环境的使用,对于这个工具不熟悉,自己以后应多加练习。
第三点就是Linux 虚拟机与主机之间的数据通信和宿主机与目标机之间的通信不是很了解,先说说我自己认为的:首先是三个系统,PC上的XP系统,虚拟机上的linux系统和开发板上的linux系统,这三个之间进行通信。
PC的XP系统可以通过DOS界面ftp服务,SSH软件或VMware 上的共享文件实现相互通信
PC的XP系统可以通过超级终端或ftp服务或Telnet与开发板上的linux系统实现相互通信
我不清楚道虚拟机上的系统是否可以直接与开发板上的系统进行通信以及怎么进行通信等
现在我只理解到这个程度,不知道以上理解是否正确。
第三篇:嵌入式实验报告
目录
实验一跑马灯实验.........................................................................1 实验二按键输入实验.....................................................................3 实验三串口实验.............................................................................5 实验四外部中断实验.....................................................................8 实验五独立看门狗实验................................................................11 实验七定时器中断实验................................................................13 实验十三ADC实验........................................................................15 实验十五DMA实验........................................................................17 实验十六I2C实验........................................................................21 实验十七SPI实验........................................................................24 实验二十一红外遥控实验............................................................27 实验二十二DS18B20实验. (30)
实验一跑马灯实验
一.实验简介
我的第一个实验,跑马灯实验。
二.实验目的
掌握STM32开发环境,掌握从无到有的构建工程。
三.实验内容
熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。
通过ISP下载代码到实验板,查看运行结果。
使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。
五.实验步骤
1.熟悉MDK KEIL开发环境
2.熟悉串口编程软件ISP
3.查看固件库结构和文件
4.建立工程目录,复制库文件
5.建立和配置工程
6.编写代码
7.编译代码
8.使用ISP下载到实验板 9.测试运行结果
10.使用JLINK下载到实验板 11.单步调试
12.记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
两个灯LED0与LED1实现交替闪烁的类跑马灯效果,每300ms 闪烁一次。
七.实验总结
通过本次次实验我了解了STM32开发板的基本使用,初次接触这个开发板和MDK KEILC软件,对软件操作不太了解,通过这次实验了解并熟练地使用MDK KEIL软件,用这个软件来编程和完成一些功能的实现。
作为STM32 的入门第一个例子,详细介绍了STM32 的IO 口操作,同时巩固了前面的学习,并进一步介绍了MDK的软件仿真功
能。
实验二按键输入实验
一.实验简介
在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。
二.实验目的
熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。
三.实验内容
实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。
使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。
五.实验步骤
1在实验1代码的基础上,编写中断初始化代码
2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序 3编写中断服务程序
4编译代码,使用JLINK下载到实验板 5.单步调试
6记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
我们将通过MiniSTM32 板上载有的3个按钮,来控制板上的2个LED,其中KEY0控制LED0,按一次亮,再按一次,就灭。
KEY1 控制LED1,效果同KEY0。
KEY_2(KEY_UP),同时控制LED0 和LED1,按一次,他们的状态就翻转一次。
七.实验总结
通过本次实验,我学会了如何使用STM32 的IO 口作为输入用。
TM32 的IO 口做输入使用的时候,是通过读取IDR 的内容来读取IO 口的状态的。
这里需要注意的是KEY0 和KEY1 是低电平有效的,而WK_UP 是高电平有效的,而且要确认WK_UP 按钮与DS18B20 的连接是否已经断开,要先断开,否则DS18B20 会干扰WK_UP按键!并且KEY0 和KEY1 连接在与JTAG 相关的IO 口上,所以在软件编写的时候要先禁用JTAG 功能,才能把这两个IO 口当成普通IO 口使用。
实验三串口实验
一.实验简介
编写代码实现串口发送和接收,将通过串口发送来的数据回送回去。
二.实验目的
掌握STM32基本串口编程,进一步学习中断处理。
三.实验内容
编写主程序,初始化串口1,设置波特率为9600,无校验,数据位8位,停止位1位。
编写中断服务程序代码实现将发送过来的数据回送。
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。
五.实验步骤
1编写串口初始化代码
2编写中断服务程序代码
3编译代码,使用JLINK或ISP下载到实验板4记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
把代码下载到 MiniSTM32 开发板,可以看到板子上的LED0 开始
闪烁,说明程序已经在跑了。
接着我们打开串口调试助手,看到如下信息:
证明串口数据发送没问题。
接着,我们在发送区输入上面的文字,输入完后按回车键。
然后单击发送,可以得到如下结果:
七.实验总结
通过本次实验,我进一步了解了串口的使用,学会了通过串口发送和接收数据,将通过串口发送来的数据回送回去。
该实验的硬件配置不同于前两个实验,串口1 与USB 串口默认是分开的,并没有在PCB上连接在一起,需要通过跳线帽来连接一下。
这里我们把P4 的RXD 和TXD 用跳线帽与P3 的PA9 和PA10 连接起来。
实验四外部中断实验
一.实验简介
STM32 的IO 口在本章第一节有详细介绍,而外部中断在第二章也有详细的阐述。
这里我们将介绍如何将这两者结合起来,实现外部中断输入。
二.实验目的
进一步掌握串口编程,进一步学习外部中断编程,提高编程能力。
三.实验内容
初始化IO口的输入,开启复用时钟,设置IO与中断的映射关系,从而开启与IO口相对应的线上中断事件,设置触发条件。
配置中断分组(NVIC),并使能中断,编写中断服务函数。
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。
五.实验步骤
1.2.3.4.编写中断服务程序代码使用ISP下载到实验板测试运行结果
记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
打开串口助手。
七.实验总结
首先需要将IO设置为中断输入口: 1)初始化 IO 口为输入。
2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。
3)开启与该 IO口相对的线上中断/事件,设置触发条件。
4)配置中断分组(NVIC),并使能中断。
5)编写中断服务函数。
这一节,使用的是中断来检测按键,通过WK_UP 按键实现按一次LED0 和LED 1 同时翻转,按KEY0 翻转LED0,按KEY1 翻转LED1。
试验中外部中断函数不能进入的原因分析:1)GPIO或者AFIO 的时钟没有开启。
2)GPIO和配置的中断线路不匹配。
3)中断触发方式和实际不相符合。
4)中断处理函数用库函数时,写错,经常可能出现数字和字母之间没有下划线。
5)外部中断是沿触发,有可能不能检测到沿,比如中断线是低电平(浮空输入),触发是下降沿触发,可能会出现一直是低电平,高电平的时候是一样的情况,电平持续为高电平。
6)没有用软件中断来触发外部中断,调用函数EXTI_GenerateSWInterrupt;,因为软件中断先于边沿中断处理。
实验五独立看门狗实验
一.实验简介
独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。
窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。
二.实验目的
通过编程,编写一个独立看门狗驱动程序
三.实验内容
启动 STM32 的独立看门狗,从而使能看门狗,在程序里面必须间隔一定时间喂狗,否则将导致程序复位。
利用这一点,我们本章将通过一个 LED 灯来指示程序是否重启,来验证 STM32 的独立看门狗。
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。
五.实验步骤
1.2.3.4.参考教材独立看门狗部分,编写独立看门狗驱动程序。
建立和配置工程编写代码
使用ISP下载到实验板
记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
在配置看门狗后,看到LED0 不停的闪烁,如果WK_UP 按键按下,就喂狗,只要WK_UP 不停的按,看门狗就一直不会产生复位,保持LED0 的常亮,一旦超过看门狗定溢出时间(Tout)还没按,那么将会导致程序重启,这将导致LED0 熄灭一次。
七.实验总结
通过本次实验,我掌握了启动独立看门狗的步骤:1)向IWDG_KR 写入0X5555。
2)向IWDG_KR 写入0XAAAA。
3)向IWDG_KR 写入 0XCCCC。
通过上面3个步骤,启动STM32 的看门狗,从而使能看门狗,在程序里面就必须间隔一定时间喂狗,否则将导致程序复位。
利用这一点,本章通过一个LED 灯来指示程序是否重启,来验证STM32 的独立看门狗。
在配置看门狗后,LED0 将常亮,如果 WK_UP 按键按下,就喂狗,只要WK_UP 不停的按,看门狗就一直不会产生复位,保持LED 0 的常亮,一旦超过看门狗溢出时间(T out)还没按,那么将会导致程序重启,这将导致 LED 0 熄灭一次。
实验七定时器中断实验
一.实验简介
STM32 的定时器是一个通过可编程预分频器(PSC)驱动的16 位自动装载计数器(CNT)构成。
STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM)等。
使用定时器预分频器和RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几微秒到几毫秒间调整。
STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。
二.实验目的
熟练掌握定时器中断,学会对定时器中断的编程操作。
三.实验内容
使用定时器产生中断,然后在中断服务函数里面翻转LED1 上的电平,来指示定时器中断的产生,修改中断时间。
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。
五.实验步骤
1.参考教材定时器中断部分,编写定时器中断的驱动程序。
2.编写主程序
3.编译代码,使用JLINK或ISP下载到实验板
4.记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
七.实验总结
通过本次实验,认识到时间中断来控制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将模拟量转换为数字量。
二.实验目的
掌握DAC和ADC编程。
三.实验内容
编写代码实现简单的DAC单次发送
编写代码实现ADC采集DAC发送的数据,并发送到串口
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。
五.实验步骤
1编写主程序
2编译代码,使用JLINK或ISP下载到实验板,使用串口调试助手观察数据 3记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
七.实验总结
本节将利用 STM32的 ADC1 通道 0 来采样外部电压值,并在串口调试助手中显示出来。
步骤如下:
1)开启 PA 口时钟,设置 PA0 为模拟输入。
2)使能 ADC1 时钟,并设置分频因子。
3)设置 ADC1 的工作模式。
4)设置 ADC1 规则序列的相关信息。
5)开启 AD 转换器,并校准。
6)读取 ADC 值。
在上面的校准完成之后,ADC 就算准备好了。
接下来我们要做的就是设置规则序列0 里面的通道,然后启动ADC 转换。
在转换结束后,读取 ADC1_DR 里面的值。
通过以上几个步骤的设置,可以正常的使用STM32 的ADC1 来执行 AD 转换操作。
通过本次实验的学习,我们了解了STM32 ADC的使用,但这仅仅是STM32强大的ADC 功能的一小点应用。
STM32 的ADC 在很多地方都可以用到,其ADC 的DMA 功能是很不错的,实验十五 DMA 实验
一.实验简介
直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。
无须CPU干预,数据可以通过DMA 快速地移动,这就节省了CPU的资源来做其他操作。
二.实验目的
熟练掌握DMA编程,学会对EPC02的读写操作,学习双缓冲兵乓操作,理解互斥资源。
提高编程能力。
三.实验内容
利用外部按键KEY0 来控制DMA 的传送,每按一次KEY0,DMA 就传送一次数据
到USART1,然后在串口调试助手观察进度等信息。
LED0 还是用来做为程序运行的指示灯。
这里我们使用到的硬件资源如下:1)按键KEY0。
2)指示灯LED0。
3)使用串口调试助手观察数据
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、网络调试助手。
五.实验步骤
1编写主程序
2编译代码,使用JLINK或ISP下载到实验板,使用串口调试助手观察数据 3记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
伴随LED0 的不停闪烁,提示程序在运行。
我们打开串口调试助手,然后按KEY0,可以看到串口显示如下内容:
七.实验总结
本节利用 STM32 的 DMA 来实现串口数据传送,DMA通道的配置需要: 1)设置外设地址。
2)设置存储器地址。
3)设置传输数据量。
4)设置通道 4 的配置信息。
5)使能 DMA1 通道 4,启动传输。
通过以上 5 步设置,我们就可以启动一次 USART1 的 DMA 传输了。
DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。
当CPU执行完当前总线周期即可释放总线控制权。
此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。
DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。
在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过中不需要中央处理器的参与。
开始时需提供要传送的数据的起始位置和数据长度。
当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。
当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介
入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。
最后,带着本次操作结果及状态继续执行原来的程序。
由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。
实验十六 I2C实验
一.实验简介
编程实现对使用I2C接口的EPC02芯片进行写和读操作。
二.实验目的
熟练掌握I2C编程,学会对EPC02的读写操作。
三.实验内容
编写I2C驱动程序,使用驱动程序初始化EPC02,判断设备正确性。
写256个0x5A到EPC02,读出并发送给串口,通过串口调试助手判别是否读到的都是0x5A.四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。
五.实验步骤
1参考教材I2C部分,编写I2C驱动程序。
2编写主程序
3编译代码,使用JLINK或ISP下载到实验板4记录实验过程,撰写实验报告
六.实验结果及测试
伴随 LED0 的不停闪烁,提示程序在运行。
我们先按下KEY0,可以看到如下所示的内容,证明数据已经被写入到24C02了。
接着我们按KEY2,可以看我们刚刚写入的数据被显示出来了,如下图所示:
源代码:
七.实验总结
IIC是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收
数据。
在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。
IIC总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。
这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。
程序在开机的时候会检测 24C02 是否存在,如果不存在则会在TFTLCD 模块上显示错误信息,同时LED0 慢闪。
大家可以通过跳线帽把PC11 和PC12 短接就可以看到报错了。
通过本次实验,我掌握了如何使用IIC写入与读出数据,学习了编写I2C 驱动程序,使用驱动程序初始化EPC02,判断设备正确性,以及如何在助手上显示。
实验十七 SPI实验
一.实验简介
编程实现对SPI接口的W25Q64进行读写操作。
二.实验目的
熟练掌握SPI编程,学会对的W25Q64读写操作。
三.实验内容
1.2.3.4.5.编写SPI驱动程序初始化SPI接口
读取SPIFLASH的ID,如果正确继续,否则报错
向SPIFALSH地址0x12AB00开始写一串字符,再读出比较判断是否与写入的一致向SPIFALSH地址0x12AB00开始写连续256个字节的0x5A,然后读出并发送给串口,通过串口调试助手判别是否读到的都是0x5A.四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。
五.实验步骤
1参考SPI及SPI FLASH部分,编写SPI及SPI FLASH驱动程序(可参考书上代码)。
2编写主程序
3编译代码,使用JLINK或ISP下载到实验板4记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
伴随 LED0 的不停闪烁,提示程序在运行。
我们先按下KEY0,可以看到如图13.17.4.2 所示的内容,证明数据已经被写入到W25X16了。
接着我们按KEY2,可以看我们刚刚写入的数据被显示出来了,如下图所示:
七.实验总结
SPI 接口主要应用在EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32 也有 SPI 接口。
SPI 的设置步骤:
1)配置相关引脚的复用功能,使能 SPI时钟。
2)设置 SPI 工作模式。
3)使能 SPI。
程序在开机的时候会检测 W25X16 是否存在,如果不存在则会在TFTLCD 模块上显示错误信息,同时LED0 慢闪。
大家可以通过跳线帽把PA5 和PA6 短接就可以看到报错了。
通过本实验,我掌握了编写SPI程序写入和读取FLASH的方法,掌握了对学会对的W25Q64读写操作。
对STM32开发板有了进一步的了解。
实验二十一红外遥控实验
一.实验简介
编程实现通过在 ALIENTEK MiniSTM32 开发板上实现红外遥控器的控制。
二.实验目的
掌握编程实现红外遥控控制开发板的方法。
三.实验内容
1.编写红外遥控驱动程序
2.编写红外遥控程序代码
3.使用红外遥控控制开发板
四.实验设备
硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。
软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。
五.实验步骤
4.编写红外遥控驱动程序
5.编写红外遥控程序代码
6.编译代码,使用JLINK或ISP下载到实验板
7.记录实验过程,撰写实验报告
六.实验结果及测试
源代码:
使用串口调试助手观察数据
七.实验总结
红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。
通过本节实验,我学习到了如何编程使用红外遥控控制,在本程序中只是简单地输出一个数值,在以后的应用中可以实现更强大的功能,比如用红外远程输入控制开发板进行一些操作。
对STM32有了进一步的认识。
实验二十二 DS18B20实验
一.实验简介
一.在ALIENTEK MiniSTM32 开发板上,通过DS18B20 来读取环境温度值。
二.实验目的
巩固SPI编程。
掌握使用感应器获取环境温度的方法。
三.实验内容
1.复位脉冲和应答脉冲
2.写时序
3.读时序。