文档库 最新最全的文档下载
当前位置:文档库 › 最完美的stm32 跑马灯

最完美的stm32 跑马灯

最完美的stm32 跑马灯
最完美的stm32 跑马灯

stm32跑马灯实验

详细了解,请点击https://www.wendangku.net/doc/bd562472.html,/ 跑马灯实验 跑马灯实验是最简单,也是一般最先开始的一个实验,他可以搭建一个最小的工程项目,之后,所有的实验都可以建立在该项目之上,从而节省了在搭建过程中所消耗的时间和精力。所有的GPIO操作都是以跑马灯为基础进行的。 建议:当该实验顺利完成后,作为一个模板,供以后实验使用,最好把相关的某些代码封装起来,方便其他程序重用和其他功能调试时使用,这样可以确保您可以将精力花费在其他需要实现的功能上,而不是多次写下重复的代码。 实验目的: 1.分析和学习固件库 2.理解固件库的结构 3.通过stm32f10x_gpio.c/.h文件,熟悉GPIO的控制和工作原理 4.对开发板LED灯的再次软件封装 实验要求: 1.利用原理图和固件库的实例,移植开发板LED灯的驱动程序,即自己创建一个LED.c/.h 2.用两种方法实现跑马灯程序: 1.LED驱动 2.直接GPIO寄存器控制 硬件分析:

如上所示,4个LED链接在4个不同管脚上,即GPIOF6,GPIOF7,GPIOF8,GPIOC7. 当这4个管脚被置为低电平时,二极管导通。 通用输入输出接口(GPIO)介绍: 多达112多功能的双向IO口:80%的IO口利用率 所有的IO被分成7个端口,即7组GPIO口(GPIOA..GPIOG); 多达21路模拟输入; 可改变功能引脚(如:USARTx、TIMx、I2Cx、SPIx、CAN、USB等); 多达112个IO口可以设置为外部中断(同时可最多可有16个); 一个IO口可用于将MCU从待机模式唤醒(PA.0); 一个IO口可用作防入侵引脚(PC.13); 标准的I/O口可承受5V; IO口可以吸收25mA(总共可吸收150mA); 18MHz翻转速度; 可设置输出速度达到50MHz; 使用BSRR和BRR寄存器可对IO口的位进行位设置或清除; 锁定机制可以避免对IO口的寄存器的误写操作: 每个GPIO引脚都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设共用。 除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。 在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入I/O寄存器。 7组GPIO的端口映射地址为:

嵌入式系统原理实验三跑马灯

实验三跑马灯实验 实验目的: 通过一个经典的跑马灯程序,了解STM32F1 的IO 口作为输出使用的方法。通过代码控制ALIENTEK 战舰STM32 开发板上的两个LED:DS0 和DS1 交替闪烁,实现类似跑马灯的效果 内容要点: 1.硬件设计 本章用到的硬件只有LED(DS0 和DS1)。其电路在ALIENTEK 战舰STM32F103 开发板上默认是已经连接好了的。DS0 接PB5,DS1 接PE5。所以在硬件上不需 要动任何东西。其连接原理图如图: 2.软件设计 跑马灯实验我们主要用到的固件库文件是: stm32f10x_gpio.c /stm32f10x_gpio.h stm32f10x_rcc.c/stm32f10x_rcc.h misc.c/ misc.h stm32f10x_usart /stm32f10x_usart.h 其中stm32f10x_rcc.h 头文件在每个实验中都要引入,因为系统时钟配置函数以及 相关的外设时钟使能函数都在这个其源文件stm32f10x_rcc.c 中。 stm32f10x_usart.h 和misc.h 头文件在我们SYSTEM 文件夹中都需要使用到,所 以每个实验都会引用。 首先,找到之前新建的Template 工程,在该文件夹下面新建一个HARDWARE 的文件夹,用来存储以后与硬件相关的代码,然后在HARDWARE 文件夹下新 建一个LED 文件夹,用来存放与LED 相关的代码。新建led.h和led.c文件, 一个外设对应一个.h和.c文件。 在Manage Components 管理里面新建一个 HARDWARE 的组,并把led.c 加入到这个组里面, 将led.h 头文件的路径加入到工程里面 一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内 容重复引用,一般通过预编译的方式来写头文件。一般的格式如下:

STM32跑马灯实验

3.1 跑马灯实验 通过本节的学习,你将了解到STM32的IO口作为输出使用的方法。本节分为如下几个小节: STM32 IO口简介 3.1.1 硬件设计 3.1.2 软件设计 3.1.3 仿真与下载 3.1.4

3.1.1 STM32 IO简介 作为所有开发板的经典入门实验,莫过于跑马灯了。ALIENTEK MiniSTM32开发板板载了2个LED,DS0和DS1,本实验将通过教你如何控制这两个灯实现交替闪烁的类跑马灯效果。 该实验的关键在于如何控制STM32的IO口输出。了解了STM32的IO口如何输出的,就可以实现跑马灯了。通过这一节的学习,你将初步掌握STM32基本IO口的使用,而这是迈向STM32的第一步。 STM32的IO口可以由软件配置成8种模式: 1、输入浮空 2、输入上拉 3、输入下拉 4、模拟输入 5、开漏输出 6、推挽输出 7、推挽式复用功能 8、开漏复用功能 每个IO口可以自由编程,单IO口寄存器必须要按32位字被访问。STM32的很多IO口都是5V兼容的,这些IO口在与5V电平的外设连接的时候很有优势,具体哪些IO口是5V兼容的,可以从该芯片的数据手册管脚描述章节查到(I/O Level标FT的就是5V电平兼容的)。 STM32的每个IO端口都有7个寄存器来控制。他们分别是:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的所存寄存器LCKR;这里我们仅介绍常用的几个寄存器,我们常用的IO端口寄存器只有4个:CRL、CRH、IDR、ODR。 CRL和CRH控制着每个IO口的模式及输出速率。 STM32的IO口位配置表如表3.1.1.1所示: 表3.1.1.1 STM32的IO口位配置表 STM32输出模式配置如表3.1.1.2所示:

LED跑马灯实验-库函数

LED跑马灯实验

修改记录 审核记录

LED跑马灯 1.1 实验介绍 GPIO即通用可编程输入输出口,在此我们通过GPIO编程实现一个跑马灯的实验。该跑马灯实验是最简单,也是一般最先开始的一个实验,它可以搭建一个最小的工程项目,之后,所有的实验都可以建立在该项目之上,从而节省了在搭建过程中所消耗的时间和精力。所有的 GPIO 操作都是以跑马灯为基础进行的。 1.2 实验目标 1. 理解固件库的结构 2. 分析和学习固件库 3. 灵活运用 GPIO 1.3 实验时间 60分钟 1.4 预备知识 熟悉C语言知识,熟练MDK的使用 1.5 实验步骤 1.解压stm32f10x_stdperiph_lib.zip可以从ST官方网站免费下载。本教程使用的标准库版本为 3.1.2 2.创建一个GPIO文件夹

2.1 新建子文件夹User,用于存放用户源程序 2.2 新建子文件夹Project,用户KEIL工程文件 2.3 在Project下依次创建Obj和List子文件夹,存放编译过程中产生的中间文件。 3. 复制源代码到GPIO文件夹 3.1 将stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Lib_V3.1.2\Libraries文件夹和Utilities文件夹整体复制到GPIO文件夹下。这就是ST的标准库,是以源代码形式提供的。 3.2 将库中的演示代码\GPIO\labsolutions\4GPIO_fuction\User中的文件复制到GPIO\User 文件夹. 4. 新建Keil MDK工程

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

3. 实验环境 WindouwslO Keil uVision5 课程实验报告 学院: ___________________ 专业: ______________ 2018年10月18日

4. 实验方法和步骤(含设计) 上。 (1 )实验硬件连接图 四个led灯如图连接到GPIO的6~9引脚(2)软件分析 使用到的GPIO端口需配置为输出模式,推挽(PP)模式输出,I0 口速度为50MHz (3 )实验步骤 ①建立工程文件:导入程序运行需要的库,加入主程序,调试运行环境,使程序可以成功被编译和运行且没有错误和警告。 ②安装JLINK驱动程序,点击下载按钮将程序烧写进开发板中。 ③检查led灯是否逐一顺序点亮,能够通过调整程序使点亮顺序改变。 (4)原函数 1 itinclude "led.h" 2 B/* 3 ( 1 )紺始牝GF IOC 的口 4 (2)定义延时蓟数 s — 6 void LEDInit(void) 7 0( 8 GPIOInitTypeDef GPIOInitStructurp; 9 RCC_APB2PeriphC 1 ockCmd(RCC_APB2P e riph_GPIOC, EWWLEJi 使隘P匚正时禅IS GPI0_ln 1 tStrut t urt.GFI0_Pin - GPI0_Pin_&\GPI0_Pin_7^GPI0_Pin_fl[GP 10_Pin_9; "PC飞濟口配匡 11 GPIOIni 稚冃辎出 12 GP Z0 I nitstrueture. GPIC^Speed - GPIO_Speed_56*Xz; //IO □谨复为50rKz

单片机跑马灯实验报告

学号14142200277序号19 单片机原理与接口技术 实验报告 实验项目序号一 实验项目名称跑马灯实验 姓名卢志雄专业电子信息工程班级电信14-2BF 完成时间2016年4月2日

一、实验内容 实验内容为3项,其中第1、2项必做。 1、基本的流水灯。 根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。每点亮一个LED,采用软件延时一段时间。 2、简单键控的流水灯。 不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。松手后,又按正序点亮流水灯。 3、键控的流水灯。 上电,不点亮LED,按一下K1键,按正序点亮流水灯。按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。 二、电路原理图 图1 跑马灯实验电路原理图

三、程序流程图 图2 简单键控的流水灯程序流程图 四、源程序 1、基本的流水灯 #include #define uint unsigned int #define uchar unsigned char void delay( j ) //延时函数 data uint j; { data uint i; while(j--) for(i=0;i<250;i++); } void main( ) //主函数 { data uchar a; a=1; //保证只有一个点亮

while(1) //不断循环 { P2=~a; //低电平点亮 a=a<<1; //左移一位,右补0 if(a==0)a=1; //全0 delay(2250);} //流动点亮延时 } 2、简单键控的流水灯 #include #define uchar unsigned char #define uint unsigned int void delay(uint i) { uchar t; while(i--) { for(t=0;t<120;t++); } } void main() { data uchar a; a=1; while(P2==0xff) { P0=~a; a=a<<1; if(a==0) a=1; delay(250); } while(P2==0xfe) { P0=~a;

STM32汇编语言 跑马灯

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;STM32 LED单向跑马灯实验 ;;8个LED接在PE口(PE[0..7]) ;;2011-5-3 by 追梦;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BIT6 EQU 0X00000040 GPIOE EQU 0X40011800 ;GPIOE 地址 GPIOE_CRL EQU 0X40011800 ;低配置寄存器 GPIOE_CRH EQU 0X40011804 ;高配置寄存器 GPIOE_ODR EQU 0X4001180C ;输出,偏移地址0Ch GPIOE_BSRR EQU 0X40011810 ;低置位,高清除偏移地址10h GPIOE_BRR EQU 0X40011814 ;清除,偏移地址14h IOPEEN EQU BIT6 ;GPIOE使能位 RCC_APB2ENR EQU 0X40021018 STACK_TOP EQU 0X20002000 AREA RESET,CODE,READONLY DCD STACK_TOP ;MSP主堆栈指针 DCD START ;复位,PC初始值 ENTRY;指示开始执行 START LDR R1,=RCC_APB2ENR LDR R0,[R1] ;读 LDR R2,=IOPEEN ORR R0,R2 ;改 STR R0,[R1] ;写,使能GPIOE时钟 ;PE[0..7] 8个引脚均设置成推挽式输出 LDR R0,=0x33333333 LDR R1,=GPIOE_CRL STR R0,[R1] LDR R1,=GPIOE_ODR LDR R0,=0X7F ;初始时最高位点亮 LOOP STR R0,[R1] PUSH {R0} MOV R0,#300 BL.W DELAY_NMS ;延时300ms POP {R0} BL.W ByteRor1 ;状态位右循环移一位 B LOOP

《STM32开发指南》第六章 跑马灯实验

第六章跑马灯实验 STM32最简单的外设莫过于IO口的高低电平控制了,本章将通过一个经典的跑马灯程序,带大家开启STM32之旅,通过本章的学习,你将了解到STM32的IO口作为输出使用的方法。在本章中,我们将通过代码控制ALIENTEK战舰STM32开发板上的两个LED:DS0和DS1交替闪烁,实现类似跑马灯的效果。本章分为如下四个小节: 6.1,STM32 IO口简介 6.2,硬件设计 6.3,软件设计 6.4,仿真与下载

6.1 STM32 IO简介 本章将要实现的是控制ALIENTEK战舰STM32开发板上的两个LED实现一个类似跑马灯的效果,该实验的关键在于如何控制STM32的IO口输出。了解了STM32的IO口如何输出的,就可以实现跑马灯了。通过这一章的学习,你将初步掌握STM32基本IO口的使用,而这是迈向STM32的第一步。 STM32的IO口可以由软件配置成如下8种模式: 1、输入浮空 2、输入上拉 3、输入下拉 4、模拟输入 5、开漏输出 6、推挽输出 7、推挽式复用功能 8、开漏复用功能 每个IO口可以自由编程,但IO口寄存器必须要按32位字被访问。STM32的很多IO口都是5V兼容的,这些IO口在与5V电平的外设连接的时候很有优势,具体哪些IO口是5V兼容的,可以从该芯片的数据手册管脚描述章节查到(I/O Level标FT的就是5V电平兼容的)。 STM32的每个IO端口都有7个寄存器来控制。他们分别是:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR;这里我们仅介绍常用的几个寄存器,我们常用的IO端口寄存器只有4个:CRL、CRH、IDR、ODR。 CRL和CRH控制着每个IO口的模式及输出速率。 STM32的IO口位配置表如表6.1.1所示: 表6.1.1 STM32的IO口位配置表 STM32输出模式配置如表6.1.2所示: 表6.1.2 STM32输出模式配置表

STM32C8T6实验

目录 实验一:流水灯实验 (2) 实验2-普通按键实验 (4) 实验3-外部中断-按键实验 (5) 实验4-ADC实验 (6) 实验5-内部温度传感器实验 (7) 实验6-数码管 (8)

实验一:流水灯实验 开发板LED采用共阳极接法,单片机引脚输出低电平时为亮,高电平时为灭。硬件连接为PA0~PA7依次接LED1~LED8。 1:使用keil5打开程序内流水灯实验程序,开发板链接电脑。

2:将程序内STM32C8T6开发手册\STM32C8T6程序\1-流水灯LED.axf下载单片机,实验现象是LED0~LED8 循环点亮。

实验2-普通按键实验 硬件连接为PB8,PB9,PB10,PB11 为外置独立按键。按下按键,单片机引脚输入低电平。

2:Keil打开STM32C8T6开发手册\STM32C8T6程序\2-普通按键实验\ key.uvprojx。 3:实验现象:按下按键S1,蜂鸣器响,LED1亮。松开不亮。 实验3-外部中断-按键实验 实验3中采用按键S1为外部中断源,按下按键S1,单片机检测到外部中断进入中断函数。 中断函数将当前LED1灯的状态取反后输出。

实验4-ADC实验 1:单片机内部集成片内ADC模块,DMA模块, USART模块。 2:程序中ADC采集ADC12_IN8 即单片机引脚PB0的电压。 3:DMA模块传送ADC转换后的数值。 4:使用PA9 PA10 的USART1 功能,向电脑传递PB0检测到的电压。5:PB0电压变换可以使用杜邦线接外接3.3V 和GND 电平. 6:实验中需要用到串口助手。 7:STM32C8T6开发手册\STM32C8T6程序\4-ADC实验

Eclipse + Keil MDK 3.5 STM32 软件模拟LED 跑马灯开发入门

Eclipse + Keil MDK 3.5 STM32 软件模拟LED 跑马灯开发入门 本人原来一直做JavaEE开发,最近想转到嵌入式开发,经过多方了解,先后了解了ARM7/9,最后选定从Cortex‐M3入手学习,目前市面上Cortex‐M3核的开发板大部分都是意法半导体STM32系列MCU,就以STM32来入门学习,也因为一直做JavaEE开发,对eclipse IDE 开发环境比较熟悉,并且用起来比较顺手,其基于eclipse的C/C++开发工具也很出色,其在后面陆续介绍。之所以要eclipse+MDK是要用eclipse强大的C开发功能和Keil的调试功能各自的优点。这也是最近学习所得。 1、开发环境搭建: 其开发环境包括eclipse和MDK 开发环境,下面是具体软件的获取和安装方法: Java环境:eclipse是基于java的开发平台,首先系统要安装了Java虚拟机(JRE),到官网下载JRE:https://www.wendangku.net/doc/bd562472.html,/javase/downloads/index.jsp, 入图中下载即可,然后默认安装即可。 Eclipse IDE for C/C++ Developers:然后下载eclipse C/C++ IDE,地址是: https://www.wendangku.net/doc/bd562472.html,/downloads/注意要下载windows版的。 只需要下载Eclipse IDE for C/C++ Developers (68 MB),该包已经集成了C/C++插件的,把下载的压缩包接压到任何目录即可,运行解压目录中的eclipse.exe,然后指定其工作区(WorkSpace)目录即可。 Windows下面GCC编译器:适用于Eclipse IDE for C/C++ Developers常用的GCC编译器有Cygwin和MinGW,这里使用Cygwin,以下下载地址:ftp://mcu123:mcu123@ftp://https://www.wendangku.net/doc/bd562472.html,/upload_上传目录/freertos/cygwin_osdev_2009.iso https://www.wendangku.net/doc/bd562472.html,.au/sourceforge/j/ji/jinix/cygwin_osdev_2009.iso 或者 https://www.wendangku.net/doc/bd562472.html,/project/showfiles.php?group_id=201649&package_i d=277469&release_id=651579

STM32实现跑马灯实验

6.1 STM32 IO简介 本章将要实现的是控制ALIENTEK战舰STM32开发板上的两个LED实现一个类似跑马灯的效果,该实验的关键在于如何控制STM32的IO口输出。了解了STM32的IO口如何输出的,就可以实现跑马灯了。通过这一章的学习,你将初步掌握STM32基本IO口的使用,而这是迈向STM32的第一步。 这一章节因为是第一个实验章节,所以我们在这一章将讲解一些知识为后面的实验做铺垫。为了小节标号与后面实验章节一样,这里我们不另起一节来讲。 在讲解STM32的GPIO之前,首先打开我们光盘的第一个固件库版本实验工程跑马灯实验 工程(光盘目录为:“4,程序源码\标准例程-V3.5库函数版本\实验1跑马灯/USER/LED.Uv2”),可以看到我们的实验工程目录: 图6.1.1 跑马灯实验目录结构 接下来我们逐一讲解一下我们的工程目录下面的组以及重要文件。 ①组FWLib下面存放的是ST官方提供的固件库函数,里面的函数我们可以根据需要添加和删除,但是一定要注意在头文件stm32f10x_conf.h文件中注释掉删除的源文件对应的头文件,这里面的文件内容用户不需要修改。 ②组CORE下面存放的是固件库必须的核心文件和启动文件。这里面的文件用户不需要修改。 ③组SYSTEM是ALIENTEK提供的共用代码,这些代码的作用和讲解在第五章都有讲解,大家可以翻过去看下。 ④组HARDWARE下面存放的是每个实验的外设驱动代码,他的实现是通过调用FWLib下面的固件库文件实现的,比如led.c里面调用stm32f10x_gpio.c里面的函数对led进行初始化,这里面的函数是讲解的重点。后面的实验中可以看到会引入多个源文件。 ⑤组USER下面存放的主要是用户代码。但是system_stm32f10x.c文件用户不需要修改,同时 stm32f10x_it.c里面存放的是中断服务函数,这两个文件的作用在3.1节有讲解,大家可以翻过去看看。Main.c函数主要存放的是主函数了,这个大家应该很清楚。 针对第①步中怎么随意添加和删除固件库文件,这里我们稍微讲解一下。 首先从上面的图中可以看到,stm32f10x_gpio.c源文件下面include了好几个头文件,其中有一个 stm32f10x_conf.h,这个文件会被每个固件库源文件引用。我们可以打开看看里面的内容:

实验一 跑马灯实验

目录 实验一跑马灯实验 (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的软件仿真功能。

相关文档
相关文档 最新文档