第5章 跑马灯实验

合集下载

跑马灯实验报告实验原理

跑马灯实验报告实验原理

跑马灯实验报告实验原理实验背景:跑马灯实验主要用于研究光的传播和反射原理。

通过实验可以观察到光在不同介质中的传播路径和光的反射规律。

本实验旨在通过搭建跑马灯实验装置,探究光在直线和曲线光路中的传播特点,并观察反射光线的方向。

实验原理:1. 光的传播特点光在真空中的传播速度为光速,约为3×10^8 m/s。

当光从真空射入介质时,光速会发生变化,根据折射定律可知,光从光疏介质射入光密介质时,会向法线方向弯曲,光从光密介质射入光疏介质时,会离开法线方向。

这种光线的弯曲现象称为折射。

2. 反射光线的方向当光线从一种介质射入另一种介质时,会发生折射,但同时也会发生反射。

根据反射定律可知,入射光线和反射光线在入射面上的法线上的投影具有相同的夹角,反射光线与入射光线在入射面上的法线在同一平面内。

实验装置:1. 实验器材:跑马灯实验装置、直尺、激光笔、纸片、墨水笔等。

2. 实验步骤:a. 将跑马灯实验装置放置在平整的桌面上,调整好实验装置的角度,使得光线能够正常传播。

b. 使用激光笔在纸片上绘制直线和曲线光路图案,并进行标记。

c. 将纸片放置在实验装置上,将激光笔对准跑马灯实验装置的光源入口,发射激光光线。

d. 观察光线在直线和曲线光路中的传播路径,以及光线的反射方向。

e. 根据观察结果记录实验数据,并进行分析和总结。

实验结果:通过实验观察可以得出以下结论:1. 在直线光路中,光线沿直线传播,不会发生弯曲。

2. 在曲线光路中,光线在曲线上弯曲传播,沿着曲线的切线方向传播。

3. 光线在跑马灯实验装置中的反射方向符合反射定律,入射光线和反射光线在入射面上的法线上的投影具有相同的夹角。

实验分析:根据实验结果可知,光在不同介质中的传播路径受到折射定律的影响,而光线在界面上的反射方向受到反射定律的影响。

这些定律的存在使得光在不同介质中的传播具有一定的规律性和可预测性。

实验应用:跑马灯实验的原理和结论在日常生活中有着广泛的应用。

单片机跑马灯(流水灯)控制实验报告

单片机跑马灯(流水灯)控制实验报告

单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对LED灯进行控制,实现跑马灯(流水灯)的效果,同时熟悉单片机编程和IO口的使用。

实验器材:1)STC89C52单片机2)最基本的LED灯3)面包板4)若干跳线实验过程:1.硬件连接:将单片机的P2口与面包板上的相应位置连接,再将LED灯接入面包板中。

2.编写程序:按照题目要求编写所需程序。

3.单片机烧录:将程序烧录进单片机中,即可实现跑马灯效果。

程序详解:1. 由于LED灯是呈现亮灭效果,我们要编写程序来控制LED的亮灭状态。

2. 在程序中,我们通过P2口控制LED灯的亮灭状态。

例如,若要让LED1亮,我们就将P2口的第一个引脚设置为低电平(0),此时LED1就会发光。

同样地,若要LED2,LED3等依次点亮,则需要将P2口的第二个、第三个引脚设置为低电平,依此类推即可。

3. 接下来,我们要实现每个LED灯的亮灭时间间隔,并实现跑马灯的效果。

4. 在本实验中,我们采用了计时器中断的方式来实现灯光的控制,即在定时器中断函数中对P2口进行控制,这样可以方便地控制灯亮灭时间和亮度。

通过改变定时器中断的时间,可以改变LED灯的亮灭时间;通过改变P2口的控制顺序,可以实现跑马灯效果。

5. 整个程序比较简单,具体的代码实现可以参考以下程序:#include <REG52.H>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void Delay1ms(uchar _ms); void InitTimer0();sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^3;sbit led4=P2^4;sbit led5=P2^5;sbit led6=P2^6;sbit led7=P2^7;void InitTimer0(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void Timer0() interrupt 1 {static uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256;i++;if(i%2==0){led1=~led1;}if(i%4==0){led2=~led2;}if(i%6==0){led3=~led3;}if(i%8==0){led4=~led4;}if(i%10==0){led5=~led5;}if(i%12==0){led6=~led6;}if(i%14==0){led7=~led7;}}void Delay1ms(uchar _ms){uchar i;while(_ms--){i=130;while(i--);}}实验总结:通过本次实验,我们掌握了单片机控制跑马灯(流水灯)的方法,对单片机编程和IO 口的使用有了更深入的了解。

跑马灯实验报告

跑马灯实验报告

跑马灯实验报告引言跑马灯是一种常见的公共场所宣传和广告工具。

它通过不断闪烁的灯光来吸引人们的注意,向他们传达信息和内容。

在这个报告中,我们将通过一系列实验来研究跑马灯的工作原理、效果和可能的应用领域。

实验一:跑马灯的基本构造实验目的通过拆解和分析跑马灯的结构,理解其基本构造和工作原理。

实验步骤1.拆解一台跑马灯,将其分解为基本组成部分,如灯管、控制电路和外壳等。

2.分析每个组成部分的作用和功能。

实验结果根据我们的拆解和分析,我们得出了以下结论:•灯管:灯管是跑马灯的核心部件,它通过发光来吸引人们的注意。

•控制电路:控制电路负责控制灯管的闪烁频率和模式。

•外壳:外壳起到保护和美化跑马灯的作用。

实验二:跑马灯的效果分析实验目的评估不同频率和模式的跑马灯对人眼的刺激程度和注意力吸引效果。

实验步骤1.准备三台不同频率的跑马灯(低频、中频和高频)。

2.让一组实验参与者观察每种频率的灯光,并记录他们的感受和注意力集中程度。

3.对比不同频率下的实验结果,并做出分析和总结。

实验结果我们的实验结果表明:•高频率的跑马灯更容易引起人们的注意,但也会让他们感到疲劳或不适。

•低频率的跑马灯对人眼的刺激相对较轻,但可能不足以引起足够的关注。

•中频率的跑马灯在刺激度和注意力吸引效果之间取得了一个平衡,被认为是比较理想的选择。

实验三:跑马灯的应用展望实验目的探索跑马灯在不同场景和领域的应用潜力,并分析其优势和限制。

实验步骤1.分析跑马灯目前的主要应用领域,如商业广告、警示通知和信息发布等。

2.探寻跑马灯在其他领域中的潜在应用,如教育、娱乐和医疗等。

3.分析跑马灯在不同应用领域中的优势和限制。

实验结果我们的分析结果表明:•跑马灯在商业广告和公共通知中具有广泛应用的潜力,因为它能够吸引人们的注意并传达信息。

•跑马灯在教育领域中可以用于展示学生作品、提醒学生重要事项等,但需注意不要过度刺激学生眼睛。

•跑马灯在医疗领域中可以用于显示患者信息、提醒医生注意事项等,但需确保灯光不会对患者或医生造成不适。

跑马灯实验报告

跑马灯实验报告

跑马灯实验报告
实验目的,通过搭建一个简单的跑马灯电路,了解电子元件的基本原理和电路的工作方式。

实验器材,LED灯、电阻、导线、电池、开关、面包板。

实验步骤:
1. 将LED灯的正极与电池的正极通过导线连接起来,负极与电阻连接,然后再将电阻的另一端与电池的负极连接。

2. 将开关连接到电路中,使得可以通过开关控制电路的通断。

3. 将整个电路搭建在面包板上,确保连接牢固。

4. 打开开关,观察LED灯的亮灭情况。

实验结果:
经过搭建和观察,我们发现当开关闭合时,LED灯会亮起;当开关断开时,LED灯会熄灭。

通过不断地开合开关,我们可以看到LED灯会不断地亮灭,就像跑马灯一样在不同的位置闪烁。

实验分析:
跑马灯实验的原理是利用开关控制电路的通断,从而控制LED灯的亮灭。

当开关闭合时,电路闭合,电流可以流通,LED灯就会亮起;当开关断开时,电路断开,电流无法流通,LED灯就会熄灭。

通过不断地开合开关,就可以实现LED 灯的频繁闪烁,呈现出跑马灯的效果。

实验总结:
通过这个简单的跑马灯实验,我们了解了电子元件的基本原理和电路的工作方式。

同时,我们也体会到了实验中的观察和分析的重要性。

在今后的学习中,我们将进一步深入学习电子电路的知识,探索更多有趣的实验和应用。

以上就是本次跑马灯实验的实验报告,希望对大家有所帮助。

跑马灯实验报告

跑马灯实验报告

跑马灯实验报告跑马灯实验报告引言:跑马灯,又称为旋转灯,是一种常见的灯光装置,广泛应用于舞台、广告牌和娱乐场所等场合。

在这个实验报告中,我们将探讨跑马灯的原理、构造和应用,并通过实验验证其工作原理。

一、跑马灯的原理跑马灯的原理基于电机的旋转运动和灯泡的亮灭变化。

电机通过驱动轴带动跑马灯旋转,而灯泡则根据电路控制的信号进行亮灭操作。

通过电机的旋转和灯泡的变化,跑马灯能够呈现出循环闪烁的效果。

二、跑马灯的构造跑马灯一般由电机、驱动轴、灯泡和控制电路等组成。

电机是跑马灯的核心部件,通过驱动轴将旋转运动转化为灯泡的亮灭变化。

灯泡则通过控制电路接收信号,根据信号的变化来控制灯泡的亮灭。

整个跑马灯的构造简单而紧凑,能够实现稳定的循环闪烁效果。

三、跑马灯的应用跑马灯广泛应用于各个领域,其中最常见的是在舞台表演中的应用。

跑马灯通过循环闪烁的效果,能够为舞台表演增添动感和视觉冲击力。

此外,跑马灯还被广泛应用于广告牌、商场和娱乐场所等场合,通过灯光的变化吸引人们的注意力,起到宣传和促销的作用。

四、跑马灯实验为了验证跑马灯的工作原理,我们进行了一次简单的实验。

首先,我们准备了一个跑马灯实验装置,包括一个电机、驱动轴和三个灯泡。

然后,我们通过控制电路将电机和灯泡连接起来,确保信号的传输和控制正常。

接下来,我们启动电机,通过控制电路的信号变化,使灯泡循环闪烁。

实验结果表明,跑马灯能够按照预期的方式工作,实现循环闪烁的效果。

结论:通过本次实验,我们深入了解了跑马灯的原理、构造和应用。

跑马灯作为一种常见的灯光装置,在舞台表演、广告宣传和娱乐场所等场合起到了重要的作用。

通过实验验证,我们证实了跑马灯能够按照预期的方式工作,实现循环闪烁的效果。

跑马灯的应用前景广阔,未来有望在更多领域发挥其独特的作用。

总结:本次实验报告详细介绍了跑马灯的原理、构造和应用,并通过实验验证了其工作原理。

跑马灯作为一种常见的灯光装置,不仅能够为舞台表演增添动感和视觉冲击力,还能够在广告宣传和娱乐场所等场合起到重要的作用。

实验五 交通灯、跑马灯轮换实验

实验五  交通灯、跑马灯轮换实验

实验五交通灯、跑马灯轮换实验
一、实验要求
1.以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),
模拟交通灯管理。

2.以K1为切换输入口,控制双色LED灯在交通灯、跑马灯两种状态切换。

二、实验目的
1.学习使用定时计数器进行定时中断控制的方法。

2.学习使用外部中断控制数据输出的设计方法。

3.进一步巩固中断程序的设计技巧。

4.掌握数据表的设计方法。

三、实验电路及连线
接线说明:K1接P3.2;PO0~PO3接DG1~DG4;
PO4~PO7接DR1~DR4。

/CS接8300H
四、实验说明
1.本实验涉及到交通灯控制和跑马灯控制两种状态。

交通灯的变化规律可以参考实验
四之描述。

跑马灯规律如下:四个双色LED灯在任意一时刻,只有两个灯亮,颜
色自定。

在跑马灯的运行中,按照顺时针的方向依次点亮相邻的两个双色LED灯,经过四次变化,跑马灯跑完一圈。

2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正
端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

3.实验进行时,首先是跑马灯状态,在任意时刻,拨动一次KEY1键(自定中断触
发方式),由跑马灯状态切换为交通灯状态;任意时刻拨动一次KEY1键,又由交
通灯状态切换为跑马灯状态。

如此循环。

4.实验要求:程序必须用到定时计数器中断和外部中断。

五、实验框图
六、实验代码
七、实验数据
八、实验小结。

实验报告 跑马灯

实验报告 跑马灯

实验报告跑马灯实验报告:跑马灯引言:跑马灯作为一种常见的室内装饰和广告展示工具,广泛应用于商场、剧院、车站等公共场所。

本实验旨在探究跑马灯的工作原理和设计过程,并通过实际搭建跑马灯模型进行验证。

一、跑马灯的工作原理跑马灯是通过一组灯泡或LED灯组成的,它们按照一定的顺序依次亮灭,从而形成连续的动态效果。

跑马灯的工作原理主要包括电路控制和程序设计两个方面。

1. 电路控制:跑马灯的电路控制是通过继电器或集成电路实现的。

继电器是一种电磁开关,通过控制电磁铁的通断来控制灯泡的亮灭。

而集成电路则是通过逻辑门和计时器等元件实现灯泡的顺序控制。

2. 程序设计:跑马灯的程序设计是通过编写一段简单的代码来实现的。

在代码中,通过控制灯泡或LED灯的亮灭时间和顺序来实现跑马灯效果。

常见的程序设计语言如C、Python等都可以用来编写跑马灯的代码。

二、跑马灯的设计过程跑马灯的设计过程包括灯泡或LED灯的选型、电路设计、程序编写和外壳制作等步骤。

1. 灯泡或LED灯的选型:在跑马灯的设计中,选择合适的灯泡或LED灯是非常重要的。

灯泡的亮度、寿命和能耗等指标需要进行综合考虑。

而LED灯则具有节能、寿命长和颜色丰富等优点,因此在现代跑马灯设计中更加常见。

2. 电路设计:电路设计是跑马灯设计中的关键环节。

在电路设计中,需要考虑灯泡或LED灯的亮灭顺序、时间间隔和电源供应等因素。

通过合理的电路设计,可以实现跑马灯的稳定运行和灯泡的长寿命。

3. 程序编写:程序编写是跑马灯设计中的另一个重要环节。

通过编写一段简单的代码,可以控制灯泡或LED灯的亮灭顺序和时间间隔。

程序编写需要考虑灯泡或LED灯的数量和控制方式等因素,以实现预期的跑马灯效果。

4. 外壳制作:外壳制作是跑马灯设计中的最后一步。

通过设计和制作合适的外壳,可以保护电路和灯泡或LED灯,同时也可以增加跑马灯的美观性。

外壳的材料可以选择塑料、金属或木材等,根据实际需要进行选择。

跑马灯实验报告

跑马灯实验报告

一、实验目的1. 熟悉嵌入式系统硬件电路的搭建与调试;2. 掌握C语言编程,实现跑马灯功能;3. 理解并掌握GPIO口操作,学习定时器中断的使用。

二、实验环境1. 开发板:STM32F103C8T6开发板2. 编译器:Keil uVision53. 软件库:STM32标准外设库三、实验原理跑马灯实验是通过控制LED灯的亮灭,实现LED灯依次点亮的效果。

实验原理如下:1. GPIO口控制:将LED灯连接到开发板的GPIO口,通过控制GPIO口的输出电平,实现LED灯的点亮与熄灭;2. 定时器中断:定时器产生中断,实现LED灯点亮与熄灭的时间间隔;3. 循环控制:通过循环控制LED灯的点亮顺序,实现跑马灯效果。

四、实验步骤1. 硬件电路搭建(1)将LED灯的正极连接到开发板的GPIO口,负极接地;(2)将开发板的电源和地线连接到电源模块。

2. 软件编程(1)在Keil uVision5中创建项目,并导入STM32标准外设库;(2)编写程序,实现以下功能:a. 初始化GPIO口,将LED灯连接的GPIO口配置为输出模式;b. 初始化定时器,设置定时器中断周期,使LED灯点亮与熄灭的时间间隔为1ms;c. 编写定时器中断服务程序,控制LED灯的点亮与熄灭;d. 编写主函数,实现LED灯依次点亮的效果。

3. 编译与下载(1)编译程序,生成可执行文件;(2)将开发板连接到计算机,通过串口下载程序到开发板。

4. 实验调试(1)打开串口调试助手,观察LED灯的点亮与熄灭效果;(2)调整程序参数,优化跑马灯效果。

五、实验结果与分析1. 实验结果(1)LED灯依次点亮,实现跑马灯效果;(2)LED灯点亮与熄灭的时间间隔可调。

2. 实验分析(1)通过控制GPIO口的输出电平,实现LED灯的点亮与熄灭;(2)定时器中断实现LED灯点亮与熄灭的时间间隔控制;(3)循环控制实现LED灯依次点亮的效果。

六、实验总结本次实验成功实现了跑马灯功能,加深了对嵌入式系统硬件电路、C语言编程和GPIO口操作的理解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

硬件设计 本章用到的硬件只有 LED( DS0 和 DS1)。其电路在 STM32 开发 板上默认是已经连接好了的。 DS0 接 PB5, DS1 接 PE5。所以在 硬件上不需要动任何东西。
软件设计 跑马灯实验我们主要用到的固件库文件是: 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 文件夹中都需要使用到,所以每个实验都会引用。
第三个参数是 IO 口速度设置, 有三个可选值,在 MDK 中同样是 通过枚举类型定义: typedef enum { GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz }GPIOSpeed_TypeDef;
IDR 是一个端口输入数据寄存器,只用了低 16 位。该寄存器为只 读寄存器,并且只能以16 位的形式读出。该寄存器各位的描述如 图 所示:
BRR 寄存器是端口位清除寄存器。该寄存器的作用跟 BSRR 的高 16 位雷同,这里就不做详细讲解。
在 STM32 固件库中, 通过 BSRR 和 BRR 寄存器设置 GPIO 端口输 出是通过函数GPIO_SetBits()和函数 GPIO_ResetBits()来完成的。
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 在多数情况下,我们都是采用这两个函数来设置 GPIO 端口的输 入和输出状态。 比如我们要设置 GPIOB.5 输出 1,那么方法为: GPIO_SetBits(GPIOB, GPIO_Pin_5);
② 组 CORE 下面存放的是固件库必须的核心文件和启动文件。这 里面的文件用户不需要修改. ③ 组 SYSTEM 是 ALIENTEK 提供的共用代码. ④ 组 HARDWARE 下面存放的是每个实验的外设驱动代码,他的 实现是通过调用 FWLib下面的固件库文件实现的,比如 led.c 里面 调用 stm32f10x_gpio.c 里面的函数对 led 进行初始化,这里面的函 数是讲解的重点。 后面的实验中可以看到会引入多个源文件。 ⑤ 组 USER 下面存放的主要是用户代码。但是 system_stm32f10x.c 文件用户不需要修改,同时 stm32f10x_it.c 里面存放的是中断服务 函数, Main.c 函数主要存放的是主函数了,这个大家应该很清楚。
ODR 是一个端口输出数据寄存器,也只用了低 16 位。该寄存器为 可读写,从该寄存器读出来的数据可以用于判断当前 IO 口的输出 状态。而向该寄存器写数据,则可以控制某个 IO 口的输出电平。 该寄存器的各位描述如图 所示:
Hale Waihona Puke 在固件库中设置 ODR 寄存器的值来控制 IO 口的输出状态是通过 函数 GPIO_Write 实现: void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal); 该函数一般用来往一次性一个 GPIO 的多个端口设值。
要想知道某个 IO 口的电平状态,你只要读这个寄存器,再看某个 位的状态就可以了。使用起来是比较简单的。 在固件库中操作 IDR 寄存器读取 IO 端口数据是通过 GPIO_ReadInputDataBit 函数实现的: uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 比如我要读 GPIOA.5 的电平状态,那么方法是: GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_5); 返回值是 1(Bit_SET)或者 0(Bit_RESET);
STM32 的 IO 口相比 51 而言要复杂得多,所以使用起来也困难很多。 首先 STM32 的 IO 口可以由软件配置成如下 8 种模式: 1、 输入浮空 2、 输入上拉 3、 输入下拉 4、 模拟输入 5、 开漏输出 6、 推挽输出 7、 推挽式复用功能 8、 开漏复用功能 每个 IO 口可以自由编程, 但 IO 口寄存器必须要按 32 位字被访问。 STM32 的很多 IO 口都是 5V 兼容的,这些 IO 口在与 5V 电平的外设 连接的时候很有优势.
在固件库开发中, 操作寄存器 CRH 和 CRL 来配置 IO 口的模式和 速度是通过 GPIO 初始化函数完成: void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); 这个函数有两个参数, 第一个参数是用来指定 GPIO,取值范围 为 GPIOA~GPIOG。 第二个参数为初始化参数结构体指针,结构体类型为 GPIO_InitTypeDef。下面我们看看这个结构体的定义。 首先我们 打开我们光盘的跑马灯实验,然后找到 FWLib 组下面的 stm32f10x_gpio.c文件,定位到 GPIO_Init 函数体处, 双击入口参 数类型 GPIO_InitTypeDef 后右键选择“Go todefinition of…” 可以 查看结构体的定义: typedef struct { uint16_t GPIO_Pin; GPIOSpeed_TypeDef GPIO_Speed; GPIOMode_TypeDef GPIO_Mode; }GPIO_InitTypeDef;
反之如果要设置 GPIOB.5 输出位 0,方法为:
GPIO_ResetBits (GPIOB, GPIO_Pin_5);
GPIO 相关的函数我们先讲解到这里。 虽然 IO 操作步骤很简单, 这里我们还是做个概括性的总结,操作步骤为:
1) 使能 IO 口时钟。调用函数为 RCC_APB2PeriphClockCmd()。 2) 初始化 IO 参数。调用函数 GPIO_Init(); 3) 操作 IO。操作 IO 的方法就是上面我们讲解的方法。
该寄存器的复位值为 0X4444 4444,复位值其实就是配置端口为 浮空输入模式。
STM32 的 CRL 控制着每组 IO 端口( A~G)的低 8 位的模式。 每个 IO 端口的位占用 CRL 的 4 个位,高两位为 CNF,低两位为 MODE。这里我们可以记住几个常用的配置,比如 0X0 表示模拟 输入模式( ADC 用)、 0X3 表示推挽输出模式(做输出口用, 50M 速率)、 0X8 表示上/下拉输入模式(做输入口用)、 0XB 表示复用输出(使用 IO 口的第二功能, 50M 速率)。CRH 的作 用和 CRL 完全一样,只是 CRL 控制的是低 8 位输出口,而 CRH 控 制的是高 8位输出口。
typedef enum { GPIO_Mode_AIN = 0x0, //模拟输入 GPIO_Mode_IN_FLOATING = 0x04, //浮空输入 GPIO_Mode_IPD = 0x28, //下拉输入 GPIO_Mode_IPU = 0x48, //上拉输入 GPIO_Mode_Out_OD = 0x14, //开漏输出 GPIO_Mode_Out_PP = 0x10, //通用推挽输出 GPIO_Mode_AF_OD = 0x1C, //复用开漏输出 GPIO_Mode_AF_PP = 0x18 //复用推挽 } GPIOMode_TypeDef;
stm32f10x_gpio.c 源文件下面 include 了好几个头文件,其中有一 个 stm32f10x_conf.h,这个文件会被每个固件库源文件引用。
从图中可以看出, 在头文件 stm32f10x_conf.h 文件中,我们包含 了四个.h 头文件,那是因为我们的 FWLib 组下面引入了相应的 4 个.c 源文件。 同时大家记住,后面三个源文件 stm32f10x_rcc.c,stm32f10x_usart.c 以及 misc.c 在每个实验基本都 要添加。在这个实验中,因为 LED 是关系到 STM32 的 GPIO,所 以我们增加了 stm32f10x_gpio.c 和头文件 stm32f10x_gpio.h的引入。 添加和删除固件库源文件的步骤是: 1. 在 stm32f10x_conf.h 文件引入需要的 .h 头文件。 这些头文件在 每个实验的目录\STM32F10x_FWLib\inc 下面都有存放。 2. 在 FWLib 下面加入步骤一中引入的.h 头文件对应的源文件。记 住最好一一对应,否则就有可能会报错。 这些源文件在每个实验 的\STM32F10x_FWLib\src 目录下面都有存放.
BSRR 寄存器是端口位设置/清除寄存器。 该寄存器和 ODR 寄存器 具有类似的作用,都可以用来设置 GPIO 端口的输出位是 1 还是 0。 下面我们看看该寄存器的描述如下图:
该寄存器通过举例子可以很清楚了解它的使用方法。 例如你要设 置 GPIOA 的第 1 个端口值为 1,那么你只需要往寄存器 BSRR 的低 16 位对应位写 1 即可: GPIOA->BSRR=1<<1; 如果你要设置 GPIOA 的第 1 个端口值为 0, 你只需要往寄存器高 16 位对应为写 1 即可: GPIOA->BSRR=1<<(16+1) 该寄存器往相应位写 0 是无影响的,所以我们要设置某些位,我 们不用管其他位的值。
跑马灯实验
1, STM32 IO 口简介 2, 硬件设计 3, 软件设计 4, 仿真与下载
库函数实现
相关文档
最新文档