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实验报告

实验一:一个灯的闪烁一、实验要求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输入输出实验

最大输出速度为 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 单片机对流水灯的控制
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工程的建立及流水灯一、实验类型验证性实验。
二、实验器材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的使用(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灯的方法,掌握了单片机编程和控制的基本技能。
同时,实验过程中遇到的问题也让我们学到了很多调试和排查的方法,提高了我们的实际操作能力和解决问题的能力。
希望通过这次实验,能够为我们今后的学习和实践打下坚实的基础。
结语。
单片机流水灯实验是单片机编程学习的重要实验之一,通过这个实验可以加深对单片机控制方法的理解,提高实际操作能力。
希望大家能够认真对待这个实验,通过自己的努力和实践,掌握单片机编程的基本技能,为今后的学习和工作打下坚实的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 日成绩评定
教师签名:
年月日。