STM32实验 GPIO输出-流水灯实验报告

合集下载

STM32实验-GPIO输出-流水灯实验报告

STM32实验-GPIO输出-流水灯实验报告

课程实验报告学院:专业: 2018年10月18日姓名学号班级指导老师课程名称嵌入式系统原理与应用实验成绩实验名称GPIO输出-流水灯1.实验目的通过一个经典的跑马灯程序,了解 STM32F1的IO口作为输出使用的方法。

通过代码控制开发板上的4个 LED灯交替闪烁,实现类似跑马灯的效果。

2.实验内容工程文件建立、程序的调试,编译、jlink驱动的安装与配置、程序下载、实验结果验证。

3.实验环境Windouws10 Keil uVision5 4.实验方法和步骤(含设计)(1)实验硬件连接图四个led灯如图连接到GPIO的6~9引脚上。

(2)软件分析使用到的GPIO端口需配置为输出模式,使用推挽(PP)模式输出,IO口速度为 50MHz。

(3)实验步骤①建立工程文件:导入程序运行需要的库,加入主程序,调试运行环境,使程序可以成功被编译和运行且没有错误和警告。

②安装JLINK驱动程序,点击下载按钮将程序烧写进开发板中。

③检查led灯是否逐一顺序点亮,能够通过调整程序使点亮顺序改变。

(4)原函数5.程序及测试结果6.实验分析与体会如果4个LED灯是与A口的PA1、PA2、PA3、PA4相连,将led.c文件中的“GPIOC”改为“GPIOA”,并将Pin_X改为对应的1~4脚。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; GPIO_Init(GPIOC, &GPIO_InitStructure);GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);改为RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);实验日期: 2018 年 10 月 18 日成绩评定教师签名:年月日Welcome To Download欢迎您的下载,资料仅供参考!。

STM32实验报告

STM32实验报告

实验一:一个灯的闪烁一、实验要求1.熟悉使用STM32F103ZET6开发板2.利用C语言程序实现一个灯闪烁二、电路原理图图1-1 LED灯硬件连接图三、软件分析1.本实验用到以下3个库函数(省略了参数):RCC_DeInit();RCC_APB2PeriphClockCmd();GPIO_Init();2.配置输入的时钟:SystemInit()主要对RCC寄存器进行配置,GPIOA连接在APB2上,因此RCC_APB2PeriphClockCmd()函数需要使能APB2Periph_GPIOA3.声明GPIO结构: PF6~PF10口配置为输出GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;4.应用GPIO口:点亮LED1有五种方法①ODR寄存器法:GPIOA->ODR=0xffbf;②位设置/清除寄存器法:GPIOA->BRR|=0X001;③方法③只适用于GPIOx_BSRR寄存器④GPIO_WriteBit()函数法:GPIO_Write(0xffbf);⑤置位复位库函数法:GPIO_ResetBits(GPIOF,GPIO_Pin_8);5.主函数程序:int main(void){RCC_Configuration(); /* 配置系统时钟 */GPIO_Configuration(); /* 配置GPIO IO口初始化 */ for(;;){GPIOF->ODR = 0xfeff; /* PF8=0 --> 点亮D3 */Delay(600000);GPIOF->ODR = 0xffff; /* PF8=1 --> 熄灭D3 */Delay(600000);}}四、实验现象下载程序后开发板上的LED1灯闪烁五、总结通过对本实验可以发现,和51等8位单片机相比,STM32对I/O端口的操作变得复杂了许多。

嵌入式系统-流水灯、按键、定时器实验报告

嵌入式系统-流水灯、按键、定时器实验报告

嵌入式系统应用实验报告姓名:学号:学院:专业:班级:指导教师:实验1、流水灯实验编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。

实验主要考察对STM32F10X系列单片机GPIO的输出操作。

参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式:◇输入浮空◇输入上拉◇输入下拉◇模拟输入◇开漏输出◇推挽式输出◇推挽式复用功能◇开漏式复用功能根据实验要求,应该首先将GPIO配置为推挽输出模式。

由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。

由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。

反之,LED灯熄灭。

软件方面,在程序启动时,调用SystemInit()函数〔见附录1〕,对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。

GPIO配置函数为SZ_STM32_LEDInit()〔见附录2〕,函数中首先使能GPIO 时钟:RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE);然后配置GPIO输入输出模式:GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;再配置GPIO端口翻转速度:GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;最后将配置好的参数写入寄存器,初始化完成:GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。

初始化完成后,程序循环点亮一个LED并熄灭其他LED,中间通过Delay()函数进行延时,到达流水灯的效果〔程序完整代码见附录3〕。

实验程序流程图如下:硬件方面,根据实验指南,将实验板做如下连接:实验二、按键实验利用STM32读取外部按键状态,按键按下一次产生一次外部中断在中断处理函数中使按键所对应的灯亮起。

实验01-STM32F103-GPIO输入输出实验

实验01-STM32F103-GPIO输入输出实验

最大输出速度为 10MHz
10
最大输出速度为 2MHz
11
最大输出速度为 50MHz
六、实验现象
把程序下载到神州Ⅱ号 STM32 开发板后,可以根据实验设计看到四个 LED(LD1-4) 单独或者轮流闪亮,实现流水灯的效果。
七、实验报告书写要求
说明:实验报告均按以下格式书写
1) 绘制程序流程图。 2) 写出程序清单。 3) 给出实验中用到的数据和实验结果。 4) 通过实验,分析你的收获、不足、问题。
三、实验电路原理图及其说明
在神州Ⅱ号 STM32 开发板中,一共有 5 个 LED 指示灯,其中一个是电源指示灯 LD5,其他的 4 个 LED (LD1、LD2、LD3 和 LD4)由 GPIO-PD 控制,4 个 LED 分别串了 470K Ω的电阻,起限流作用防止电流过大损坏 LED 和 GPIO 口。电路原理图如图 1 所示。
口可以自由编程,单 IO 口寄存器必须要按 32 位字被访问。STM32 的很多 IO 口都是 5V
兼容的,这些 IO 口在与 5V 电平的外设连接的时候很有优势。
STM32 的每个 IO 端口都有 7 个寄存器来控制:配置模式的 2 个 32 位的端口配置寄
存器 CRL 和 CRH、2 个 32 位的数据寄存器 IDR 和 ODR、1 个 32 位的置位/复位寄存器 BSRR、
五、实验原理
流水灯的关键实际上就是如何控制 STM32 处理器的 GPIO 接口,作为 IO 口,输出指 定的电平信号。
STM32 的 IO 口可以由软件配置成 8 种模式:模拟输入、输入悬空、输入下拉、输入
2
山东科技大学《微控制器原理》实验指导书
STM32F103-GPIO 基本输入输出实验

基于STM32单片机对流水灯的控制

基于STM32单片机对流水灯的控制

基于 STM32 单片机对流水灯的控制
1.跟着例程自己创建自己的工程时,出现了 GPIO 库文件里有 undefined 等等,在我们刚开始学习新建工程时要注意 C/c++里面的 Defined,与开发板 匹配! 2.在启动文件中选择与开发板匹配的文件,比如 hd,ld,md 等等只要加 入一种,多了会出现错误。 3.终于成功了! 4.出现 Flash download failed cortex M3 注意 Flashdownload 里面关于你芯片 Flash 匹配。 5.今天终于借助于库开发点亮第一个 LED 灯,哈哈。 blog.csdn/hantangsongming/article/details/8139793
blog.sina/s/blog_5e4c7eeb01019gxl.html 本文引用地址: 21ic/app/mcu/201810/781453.htm 6.不过对于寄存器的控制仍然有点问题,明天再搞。 *********************************************************Байду номын сангаас STM32 流水灯实验。 1.通过 GPIO 口函数库实现 LED 的闪灭。 ,晚上和陈辉加一起将 cc3000 入网密码问题解决,可是对于不设定 smartconfig 的密码为何不行还是想不通。。 2.位绑定。有待深入了解。

实验一基于STM32固件库的MDK工程的建立及流水灯

实验一基于STM32固件库的MDK工程的建立及流水灯

实验一基于STM32固件库的MDK工程的建立及流水灯一、实验类型验证性实验。

二、实验器材1、PC微机1台2、MDK开发环境三、实验目的与任务实验目的:1、熟悉Cortex-M3处理器开发平台MDK2、熟悉基于STM32固件库的MDK项目的配置3、理解STM32处理器GPIO的结构,掌握GPIO引脚的配置方法4、熟悉GPIO的配置过程5、熟悉MDK开发平台软件仿真环境及外设仿真方法实验任务:如下图,STM32F103R8T6处理器GPIOA的GPIO_Pin_6控制LED1 GPIO_Pin_7控制LED2,建立一个基于STM32固件库的MDK项目,实现对LED灯的控制,使LED1每秒闪烁1次。

LED2每秒闪烁2次。

四、参考资料1、《嵌入式系统基础及应用》第7章 GPIO部分2、参考手册:STM32F10xxx_RM0008_CH_Rev7V3.pdf3、数据手册:STM32F103CDE增强型系列数据手册(2009年3月).pdf4、固件库:STM32F101xx和STM32F103xx固件函数库.pdf五、实验基本原理1、STM32每个GPIO引脚具有工作模有:浮空输入、带上拉输入、带下拉输入、模拟输入、开漏输出、推挽输出、复用功能的推挽输出、复用功能的开漏输出等。

由上图可知,若驱动LED1、LED2,需要设置相应的IO引脚为开漏输出或推挽输出。

2、对于STM32 GPIO端口的配置,涉及的寄存器的作用。

2个32bits的配置寄存器(GPIOx_CRL,GPIOx_CRH),用于配置各IO引脚的输入输出方式和速度,各位含义如下:2个32bits的数据寄存器 (GPIOx_IDR,GPIOx_ODR),用于读取IO引脚的状态和设置IO 引脚输出电位。

1个32bits的置位/复位寄存器(GPIOx_BSRR),用于置位复位某些IO引脚的原子操作。

1个16bits的复位寄存器(GPIOx_BRR),用于复位某些引脚的原子操作1个32bits的Lock寄存器(GPIOx_LCKR)。

GPIO的使用实验报告

GPIO的使用实验报告

实验二通用GPIO的使用(4学时)
一、实验目的
1、掌握C51芯片I/O接口的性能特点。

2、掌握STM32芯片I/O接口的性能特点。

3、对于C51芯片,使用P0、P1口做I/O接口,实现输入和
输出控制。

4、对于STM32芯片掌握GPIO的功能设定方法,使用
GPIO完成输入与输出的电路驱动
二、实验内容
1. P1口做为输出口控制“单只数码管循环显示0~9”。

2. 编写一段程序,并修改硬件电路,用P1.0-P1.6口控制
LED,P1.7控制LED的亮与灭(P1.7接按键,按下时LED 亮,不按时LED灭)。

3、用STM32芯片I/O接口实现流水灯的控制。

三、思考题
1、为什么P0作为I/O接口时,要接上拉电阻?
答:因为P0口作为I/O接口时内部是漏极开路型。

2、在实验内容2中,如果P0某个管脚接按键,该如何修改硬件和软件?
3、设计一单片机控制电路,用八只开关分别控制八只LED 的亮灭。

四、实验结果分析
对于问题2
四、结论
这次对单片机GPIO口的实验,我们分别做了51单片机和STM32f103r6对GPIO端口的应用,再通过protues的仿真验证,证明我们的思路是正确的。

由于在这次实验中没有吧protues8.6版本安装好,导致实验过程中出现了了一些延误,没能按照老师课堂的进度,但在实验课过后过后,及时复习和查资料,解决了这个问题。

实验过程中不足的有,对于实验仍处于生搬硬套的阶段,无法将老师理论课所讲与实验结合在一起,对于写代码的能力有待提高。

单片机流水灯实验总结

单片机流水灯实验总结

单片机流水灯实验总结单片机流水灯实验是学习单片机编程的基础实验之一,通过这个实验可以了解单片机的基本输入输出功能,掌握单片机的编程和控制方法。

下面我将对单片机流水灯实验进行总结,包括实验原理、实验步骤、实验结果以及实验中遇到的问题和解决方法。

实验原理。

单片机流水灯实验是利用单片机的GPIO口控制LED灯的亮灭,通过不同的控制方式实现LED灯的流水效果。

在单片机中,通过将相应的GPIO口输出高电平或低电平来控制LED的亮灭,从而实现流水灯的效果。

实验步骤。

1. 硬件连接,将单片机和LED灯按照电路图连接好,确保连接正确无误。

2. 编写程序,利用单片机编程软件编写流水灯控制程序,设置相应的GPIO口输出高低电平的时间间隔和顺序。

3. 烧录程序,将编写好的程序通过编程器烧录到单片机中。

4. 调试程序,连接好电路后,通过上电测试程序,观察LED灯的流水效果是否符合预期。

实验结果。

经过以上步骤,我们成功实现了单片机流水灯的效果。

LED灯按照设定的顺序依次亮起和熄灭,形成了流水灯的效果。

实验结果符合预期,证明了程序编写和硬件连接的正确性。

实验中遇到的问题和解决方法。

在实验过程中,我们遇到了一些问题,例如LED灯未按照预期顺序亮起、熄灭或者有闪烁现象。

经过检查和调试,发现是程序编写中的逻辑错误或者硬件连接接触不良导致的。

通过仔细排查和调试,我们成功解决了这些问题,确保了实验的顺利进行和结果的准确性。

总结。

通过本次单片机流水灯实验,我们深入了解了单片机的GPIO口控制LED灯的方法,掌握了单片机编程和控制的基本技能。

同时,实验过程中遇到的问题也让我们学到了很多调试和排查的方法,提高了我们的实际操作能力和解决问题的能力。

希望通过这次实验,能够为我们今后的学习和实践打下坚实的基础。

结语。

单片机流水灯实验是单片机编程学习的重要实验之一,通过这个实验可以加深对单片机控制方法的理解,提高实际操作能力。

希望大家能够认真对待这个实验,通过自己的努力和实践,掌握单片机编程的基本技能,为今后的学习和工作打下坚实的基础。

STM32实验-GPIO输出-流水灯实验报告

STM32实验-GPIO输出-流水灯实验报告
GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
改为
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4;
课程实验报告
学院:专业:2018年10月18日
姓名
学号
班级
指导老师
课程名称
嵌入式系统原理与应用实验


实验名称
GPIO输出-流水灯
1.实验目的
通过一个经典的跑马灯程序,了解STM32F1的IO口作为输出使用的方法。通过代码控制开发板上的4个LED灯交替闪烁,实现类似跑马灯的效果。
2.实验内容
工程文件建立、程序的调试,编译、jlink驱动的安装与配置、程序下载、实验结果验证。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;
GPIO_Init(GPIOC, &GPIO_InitStructure);
欢迎您的下载,资料仅供参考!
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);
实验日期:2018年10月18日

嵌入式流水灯实训报告

嵌入式流水灯实训报告

一、实验背景随着物联网、智能家居等领域的快速发展,嵌入式系统在各个行业中的应用越来越广泛。

为了提高对嵌入式系统的理解,本实训选择了“流水灯”作为实验项目。

通过本实验,旨在掌握STM32单片机的基本操作,熟悉GPIO端口的使用,以及定时器的配置和应用。

二、实验目的1. 熟悉STM32单片机的基本结构和工作原理;2. 掌握GPIO端口的使用方法,实现LED灯的亮灭控制;3. 学习定时器的配置和应用,实现流水灯效果的实现;4. 提高嵌入式系统开发的理解和应用能力。

三、实验原理1. STM32单片机简介STM32是一款基于ARM Cortex-M3内核的微控制器,具有高性能、低功耗、丰富的外设和强大的处理能力。

本实验使用STM32F103ZET6单片机作为实验平台。

2. GPIO端口GPIO(通用输入输出)端口是STM32单片机的重要组成部分,可以用于输入或输出信号。

在本实验中,GPIO端口用于控制LED灯的亮灭。

3. 定时器定时器是STM32单片机的一个功能模块,可以用于实现定时功能。

在本实验中,定时器用于控制LED灯的流水效果。

四、实验步骤1. 准备实验环境(1)准备STM32F103ZET6单片机开发板、电源、LED灯、连接线等实验器材;(2)安装Keil 5软件,并配置ST-Link Debugger环境。

2. 编写程序(1)创建一个新的STM32工程,并添加必要的头文件和库文件;(2)编写主函数main.c,实现以下功能:a. 初始化GPIO端口,设置LED灯的引脚为输出模式;b. 初始化定时器,设置定时时间;c. 在定时器中断服务程序中,实现LED灯的流水效果;d. 主循环中,调用延时函数,实现流水灯效果的持续显示。

3. 编译程序(1)编译工程,生成可执行文件;(2)将可执行文件下载到STM32单片机中。

4. 测试实验(1)接通电源,观察LED灯的流水效果;(2)根据需要调整定时器和GPIO端口的配置,观察流水灯效果的变化。

实验四、GPIO输出实验-流水灯

实验四、GPIO输出实验-流水灯

实验四:GPIO 输出控制实验一、实验目的1. 掌握LPC21XX 专用工程模板的使用;2. 掌握EasyJTAG 仿真器的安装和使用;3. 能够在EasyARM21XX 开发板上运行第一个程序(无操作系统);4. 熟悉LPC2000 系列ARM7 微控制器的GPIO 控制。

二、实验设备硬件:PC 机一台、EasyARM2103 开发板一套软件:Windows98/XP/2000 系统,ADS 1.2 集成开发环境三、实验内容控制EasyARM2103 开发板上的LED闪烁形成流水灯效果。

四、实验预习要求仔细阅读《EasyARM2103》手册第4 章的内容,熟悉GIPO的设置。

仔细阅读《EasyARM2103》第 2 章的内容,了解EasyARM2103 开发板的硬件结构,注意LED灯的相关控制电路。

仔细阅读《EasyARM2103》第 3 章的内容,了解ADS 1.2 集成开发环境、LPC2200 专用工程模板、EasyJTAG 仿真器的应用。

五、实验原理如何在EasyARM2103 上运行第一个程序。

安装ADS 1.2 (PC)了解ADS 1.2 (PC)连接EasyJTAG 仿真器和EasyARM2103 开发板(硬件)安装EasyJTAG 驱动程序(PC)添加工程模板(PC)用工程模板建立第一个工程(PC)仿真调试第一个工程(PC+硬件)说明:(PC) ----------------属于在PC 机上操作,即软件的操作(硬件) --------------属于开发板硬件操作(PC+硬件) --------属于在PC 机上进行软件操作,硬件上要连接或跳线操作六、实验步骤1. 连接EasyJTAG 仿真器和EasyARM2103 开发板,然后安装EasyJTAG 仿真器的驱动程序(若已经安装过,此步省略)。

2. 为ADS1.2 增加LPC2103 专用工程模板(若已增加过,此步省略)。

3. 启动ADS 1.2,使用ARM Executable Image for lpc2103 工程模板建立一个工程BeepCon_C。

流水灯实训报告心得体会

流水灯实训报告心得体会

一、前言流水灯实训是嵌入式系统学习过程中的一个重要环节,通过本次实训,我对嵌入式系统有了更深入的了解,提高了自己的动手能力和实践能力。

以下是我对本次流水灯实训的心得体会。

二、实训目的与内容1. 实训目的本次流水灯实训的主要目的是:(1)掌握STM32单片机的基本结构与工作原理;(2)学习使用GPIO端口进行简单的输出控制;(3)了解定时器的基本使用方法,通过定时器控制LED灯的流水效果;(4)提升对嵌入式系统开发的理解与应用能力。

2. 实训内容本次实训主要涉及以下几个方面:(1)STM32F103ZET6单片机的基本结构和工作原理;(2)GPIO端口的使用方法;(3)定时器的基本使用方法;(4)LED流水灯的实现。

三、实训过程1. 实验准备在实验前,我首先下载了Keil 5软件和ST-Link Debugger环境,并对实验板进行了简单的认识。

接着,我学习了STM32F103ZET6单片机的基本结构和工作原理,了解了GPIO端口和定时器的使用方法。

2. 实验步骤(1)编写代码根据实验要求,我编写了main.c、led.c和led.h三个文件。

在main.c文件中,我设置了单片机的时钟频率、初始化GPIO端口和定时器。

在led.c文件中,我编写了控制LED流水灯的函数。

在led.h文件中,我定义了LED流水灯的相关宏。

(2)编译代码将编写的代码编译生成.hex文件。

(3)下载代码使用ST-Link Debugger将生成的.hex文件下载到实验板上。

(4)调试代码通过观察实验现象,我发现LED流水灯效果不理想。

经过分析,我发现是定时器设置不当导致的。

我修改了定时器的相关参数,再次下载代码并观察实验现象,最终实现了LED流水灯的效果。

3. 实验总结在实验过程中,我遇到了许多问题,如代码编译错误、下载失败等。

通过查阅资料和请教老师,我逐渐解决了这些问题。

这次实训让我深刻体会到,嵌入式系统开发需要耐心和细心,同时也需要具备一定的调试技巧。

流水灯显示实验报告

流水灯显示实验报告

流水灯显示实验报告流水灯显示实验报告一、实验目的本实验旨在通过单片机控制LED灯的亮灭,实现流水灯的显示效果。

通过本实验,旨在巩固学生对单片机基本理论知识的理解,掌握流水灯显示的基本原理与设计方法,提高实践操作能力。

二、实验原理流水灯是一种常见的LED显示效果,通过控制LED灯的亮灭顺序和时间间隔,使LED灯以一定的速度逐次点亮或熄灭,形成流水般的效果。

本实验采用单片机控制LED灯的亮灭,通过编程实现流水灯的显示。

三、实验步骤1.准备实验材料(1)单片机开发板(2)LED灯若干(3)杜邦线若干(4)面包板(5)镊子、电烙铁等工具2.搭建硬件电路(1)将LED灯按照一定的顺序连接到单片机开发板的GPIO口上。

(2)使用杜邦线将电源连接到LED灯的正极和负极。

(3)连接单片机开发板与电脑的串口。

3.编写程序(1)打开单片机开发板的编程软件,如Keil uVision。

(2)编写程序代码,实现流水灯的显示效果。

程序代码包括初始化、延时、循环点亮和熄灭LED灯等部分。

(3)将程序代码下载到单片机开发板中。

4.调试与测试(1)打开电源,观察LED灯的亮灭情况,检查是否实现了流水灯效果。

(2)调整程序代码中的延时参数,改变LED灯的亮灭速度。

(3)检查程序代码中的语法错误和逻辑错误,确保程序的正确性。

四、实验结果与分析1.实验结果通过本次实验,我们成功地实现了流水灯的显示效果。

当电源接通后,LED灯按照设定的顺序逐次点亮或熄灭,形成流水般的效果。

同时,通过调整程序代码中的延时参数,我们还可以改变LED灯的亮灭速度。

2.结果分析本次实验的成功得益于正确的实验方法和步骤。

首先,我们准确地搭建了硬件电路,确保LED灯与单片机的连接正确;其次,我们合理地编写了程序代码,实现了流水灯的显示效果;最后,我们对实验结果进行了仔细的观察和调试,确保实验结果的正确性。

通过本次实验,我们不仅提高了实践操作能力,还巩固了对单片机基本理论知识的理解。

最新单片机实验流水灯报告

最新单片机实验流水灯报告

最新单片机实验流水灯报告在本次实验中,我们设计并实现了一个基于单片机的流水灯系统。

该系统的主要功能是通过编程控制LED灯按照一定的顺序和时间间隔依次点亮和熄灭,从而形成流水灯效果。

以下是实验的详细报告:实验目的:1. 熟悉单片机的基本操作和编程。

2. 掌握GPIO(通用输入输出)的配置和使用。

3. 提高编程能力,理解时间控制的概念。

实验材料:- 单片机开发板- LED灯若干- 杜邦线若干- 电源适配器- 计算机及相应的编程软件实验步骤:1. 首先,将LED灯通过杜邦线连接到单片机的GPIO端口上。

确保每个LED连接正确,并且限流电阻已经安装以保护LED不被烧毁。

2. 使用编程软件编写单片机程序。

程序的主要逻辑是通过循环结构控制每个GPIO端口的高低电平,从而控制LED的亮灭。

3. 在程序中设置适当的延时函数,以控制LED点亮和熄灭的时间间隔,实现流水灯的效果。

4. 将编写好的程序通过编程软件下载到单片机中。

5. 连接电源,观察LED灯是否按照预期进行流水式点亮。

实验结果:通过实验,我们成功实现了流水灯效果。

LED灯按照预定的顺序依次点亮和熄灭,形成了流畅的动态效果。

通过调整延时参数,我们还可以改变流水的速度,从而观察不同设置下的灯光变化。

实验分析:在实验过程中,我们发现GPIO端口的配置对于LED的亮灭至关重要。

同时,延时函数的精确度直接影响了流水灯效果的平滑度。

通过对程序的不断调试和优化,我们加深了对单片机编程和硬件控制的理解。

结论:本次单片机实验不仅锻炼了我们的编程技能,而且增强了我们对电子硬件的认识和操作能力。

通过实际操作,我们更加深刻地理解了理论知识,为未来的电子设计和创新打下了坚实的基础。

STM32实验报告

STM32实验报告

STM32实验报告一、实验目的本次实验的目的是了解并掌握STM32单片机的基本使用方法,学习如何通过编程控制STM32来完成一系列操作,包括输入输出控制、定时器控制等。

二、实验器材和材料1.STM32单片机开发板B数据线3. 开发环境:Keil uVision 5(或其他适用于STM32的编程软件)三、实验过程1. 配置开发环境:安装Keil uVision 5,并将STM32单片机开发板与计算机连接。

2.创建一个新的工程,并选择适当的芯片型号。

3.对芯片进行配置:选择适合的时钟源,设置GPIO端口等。

4.编写程序代码:根据实验要求,编写相应的程序代码。

5. 编译程序:在Keil uVision中进行编译,生成可执行文件。

6.烧录程序:将生成的可执行文件烧录到STM32单片机中。

7.调试与测试:连接各种外设并进行测试,检查程序功能的正确性。

8.实验结果分析:根据测试结果,分析并总结实验结果。

四、实验结果在本次实验中,我成功完成了以下几个实验任务:1.输入输出控制:通过配置GPIO端口为输入或输出,我成功实现了对外部开关、LED 等外设的控制。

通过读取外部开关的状态,我能够进行相应的逻辑操作。

2.定时器控制:通过配置并启动定时器,我成功实现了定时中断的功能。

可以通过定时中断来触发一系列事件,比如定时更新数码管的显示,控制电机的运动等。

3.串口通信:通过配置UART串口模块,我成功实现了与计算机的串口通信。

可以通过串口与计算机进行数据的收发,实现STM32与计算机的数据交互。

五、实验总结通过本次实验,我对STM32单片机的使用方法有了更深入的了解。

学会了如何配置GPIO端口、定时器、串口等,掌握了相应的编程技巧。

此外,还学会了如何进行调试和测试,检查程序功能的正确性。

通过实验的实际操作,我对STM32的各项功能有了更深入的理解。

需要注意的是,在实验过程中,我遇到了一些问题,比如代码编写错误、烧录问题等,但经过仔细分析和调试,最终都得到了解决。

STM32实验报告

STM32实验报告

实验一:一个灯的闪烁一、实验要求1.熟悉使用STM32F103ZET6开发板2.利用C语言程序实现一个灯闪烁二、电路原理图图1-1 LED灯硬件连接图三、软件分析1.本实验用到以下3个库函数(省略了参数):RCC_DeInit();RCC_APB2PeriphClockCmd();GPIO_Init();2.配置输入的时钟:SystemInit()主要对RCC寄存器进行配置,GPIOA连接在APB2上,因此RCC_APB2PeriphClockCmd()函数需要使能APB2Periph_GPIOA3.声明GPIO结构: PF6~PF10口配置为输出GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;4.应用GPIO口:点亮LED1有五种方法①ODR寄存器法:GPIOA->ODR=0xffbf;②位设置/清除寄存器法:GPIOA->BRR|=0X001;③方法③只适用于GPIOx_BSRR寄存器④GPIO_WriteBit()函数法:GPIO_Write(0xffbf);⑤置位复位库函数法:GPIO_ResetBits(GPIOF,GPIO_Pin_8);5.主函数程序:int main(void){RCC_Configuration(); /* 配置系统时钟 */GPIO_Configuration(); /* 配置GPIO IO口初始化 */ for(;;){GPIOF->ODR = 0xfeff; /* PF8=0 --> 点亮D3 */Delay(600000);GPIOF->ODR = 0xffff; /* PF8=1 --> 熄灭D3 */Delay(600000);}}四、实验现象下载程序后开发板上的LED1灯闪烁五、总结通过对本实验可以发现,和51等8位单片机相比,STM32对I/O端口的操作变得复杂了许多。

STM32实验报告

STM32实验报告

实验一搭建实验环境一.实验简介搭建嵌入式系统开发环境,建立第一个工程,流水灯实验二.实验目的掌握STM32开发环境,掌握从无到有的构建工程。

三.实验内容熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现流水灯工程。

通过ISP下载代码到实验板,查看运行结果。

下载代码到目标板,查看运行结果。

四.实验设备硬件部分:PC计算机(宿主机)、STM32实验板。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤1.熟悉MDK KEIL开发环境2.熟悉串口编程软件ISP3.查看固件库结构和文件4.建立工程目录,复制库文件5.建立和配置工程6.编写代码7.编译代码8.使用ISP下载到实验板9.测试运行结果10.记录实验过程,撰写实验报告六.实验结果及测试七.实验总结实验二按键实验(查询方式)一.实验简介在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。

二.实验目的熟练使用库函数操作GPIO,掌握利用查询方式控制按键的程序编写方法。

三.实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。

四.实验设备硬件部分:PC计算机(宿主机)、STM32实验板。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤1在实验一代码的基础上,编写按键控制部分代码2编写完成主程序4编译代码,下载到实验板5.单步调试6记录实验过程,撰写实验报告六.实验结果及测试七.实验总结实验三按键实验(中断方式)一.实验简介在实验一的基础上,使用按键控制流水灯。

二.实验目的熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。

三.实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。

下载代码到目标板,查看运行结果。

STM32 LED流水灯实验报告

STM32 LED流水灯实验报告
ห้องสมุดไป่ตู้
LED1=1; delay_ms(1000); delay_ms(1000); LED0=1; LED1=0; delay_ms(1000); delay_ms(1000); LED0=1; LED1=1; delay_ms(1000);//ÑÓʱ300ms delay_ms(1000); } } /* LED0=0; LED_a=0; LED1=1; LED_a=1; delay_ms(5000); LED0=1; LED0_a=1; LED1=0; LED1_a=0; delay_ms(5000);
} } 4. 实现功能 Led1 亮,led0 不亮,延迟两个 1000ms;Led0 亮,led1 亮,延迟两个 1000ms;Led0 亮,led1 不亮,延迟两个 1000ms;Led0 亮,led1 亮,延迟两个 1000ms,如此实现流水灯。 5. 总结 (1) delay 文件夹内包含了 delay.c 和 delay.h 两个文件,这两个文件用来实现系统的延时 功能 (2) delay 延时的编程思想:CM3 内核的处理器,内部包含了一个 SysTick 定时器,SysTick 是一个 24 位的倒计数定时器,当计数到 0 时,将从 RELOAD 寄存器中自动重装载定 时初值,开始新一轮计数。只要不把它在 SysTick 控制及状态寄存器中的使能位清除, 就永不停息 (3) 在 ucos 下 SysTick 不能再被随意更改,故利用时钟摘取法,以 delay_us 为例,比如 delay_us(50),在刚进入 delay_us 的时候先计算好这段延时需要等待的 SysTick 计数次 数,这里为 50*9(假设系统时钟为 72Mhz,那么 SysTick 每增加 1,就是 1/9us) ,然 后我们就一直统计 SysTick 的计数变化,直到这个值变化了 50*9,一旦检测到变化达 到或者超过这个值,就说明延时 50us 时间到了。 (4) sys 文件夹内包含了 sys.c 和 sys.h 两个文件。在 sys.h 里面定义了 STM32 的 IO 口 输入读取宏定义和输出宏定义。sys.c 里面只定义了一个中断分组函数。 (5) usart 文件夹内包含了 usart.c 和 usart.h 两个文件。这两个文件用于串口的初始化和
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程实验报告
学院:专业:2018年10月18日姓名学号
班级指导老师
课程名称嵌入式系统原理与应用实验成

实验名称GPIO输出-流水灯
1.实验目的
通过一个经典的跑马灯程序,了解STM32F1的IO口作为输出使用的方法。

通过代码控制开发板上的4个LED灯交替闪烁,实现类似跑马灯的效果。

2.实验内容
工程文件建立、程序的调试,编译、jlink驱动的安装与配置、程序下载、实验结果验证。

3.实验环境
Windouws10 Keil uVision5 4.实验方法和步骤(含设计)
(1)实验硬件连接图
四个led灯如图连接到GPIO的6~9引脚
上。

(2)软件分析
使用到的GPIO端口需配置为输出模式,使用推挽(PP)模式输出,IO口速度为50MHz。

(3)实验步骤
①建立工程文件:导入程序运行需要的库,加入主程序,调试运行环境,使程序可以成功被编译和运行且没有错误和警告。

②安装JLINK驱动程序,点击下载按钮将程序烧写进开发板中。

③检查led灯是否逐一顺序点亮,能够通过调整程序使点亮顺序改变。

(4)原函数
5.程序及测试结果6.实验分析与体会
如果4个LED灯是与A口的PA1、PA2、PA3、PA4相连,将led.c文件中的“GPIOC”改为“GPIOA”,并将Pin_X改为对应的1~4脚。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
改为
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4; GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4);
实验日期:2018 年10 月18 日成绩评定
教师签名:
年月日。

相关文档
最新文档