#include "stm32f10x.h"

#include "led.h"

#include "delay.h"

#include "sys.h"

int main(void)

{

delay_init();

LED_Init();

while(1)

{

LED0=0;

LED1=1;

delay_ms(300);

LED0=1;

LED1=0;

delay_ms(300);

}

}

代码包括了#include "led.h"这句。使得 LED0、LED1、LED_Init 等能在 main()函数里被调用。这里我们须要重申的是。在固件库 V3.5 中,系统在启动的时候会调用 system_stm32f10x.c 中的函数 SystemInit()对系统时钟进行初始化,在时钟初始化完成之后会调用 main()函数。 所以我们不须要再在 main()函数中调用 SystemInit()函数。

当然假设有须要又一次设置时钟系统,能够写自己的时钟设置代码。SystemInit()仅仅是将时钟系统初始化为默认状态。

main()函数很easy,先调用 delay_init()初始化延时,接着就是调用 LED_Init()来初始化GPIOB.5 和 GPIOE.5 为输出。最后在死循环里面实现 LED0 和 LED1 交替闪烁,间隔为 300ms。上面是通过位带操作实现的 IO 操作,我们也能够改动 main()函数,直接通过库函数来操作IO 达到相同的效果.

#include "stm32f10x.h"

#include "led.h"

#include "delay.h"

#include "sys.h"

int main(void)

{

delay_init();
//延时函数初始化

LED_Init();
//初始化与LED连接的硬件接口

while(1)

{

GPIO_ResetBits(GPIOB,GPIO_Pin_5);
//PB5输出低,LED0=0;

GPIO_SetBits(GPIOE,GPIO_Pin_5);
//PE5输出高,LED1=1;

delay_ms(300);
//延时300ms

GPIO_SetBits(GPIOB,GPIO_Pin_5);
//PB5输出为高,LED0=1。

GPIO_ResetBits(GPIOE,GPIO_Pin_5);
//PE5输出为低,LED1=0

delay_ms(300);
//延时300ms

}

}

将主函数替换为上面代码,然后又一次运行,能够看到,结果跟用位带操作一样的效果。

STM32跑马灯的更多相关文章

  1. 嵌入式02 STM32 实验04跑马灯

    开学STM32 跑马灯的实验主要就是了解GPIO口的配置及使用,我这里是使用库函数进行编程,主要需要设置以下两方面: 1.使能需要使用的IO口的时钟,一共有A.B.C.D.E.F.G七组IO口 2.初 ...

  2. ARM开发(1) 基于STM32的LED跑马灯

    一 跑马灯原理:  1.1 本实验实现2个led的跑马灯效果,即2个led交替闪烁.  1.2 实验思路:根据电路图原理,给led相关引脚赋予高低电平,实现电路的导通,使led灯发光.  1.3 开发 ...

  3. STM32F4寄存器编写跑马灯例程

    最近由于在学习STM32看到别人用寄存器编程控制跑马灯,于是自己也想试一试.可是试了好久终究弄不出来.回头看了下库函数的调用关系才搞明白.首先通过查看GPIOA的设置函数发现设置如下: void GP ...

  4. GPIO原理与配置(跑马灯,蜂鸣器,按键)

    一.STM32 GPIO固件库函数配置方法 1. 根据需要在项目中删掉一些不用的固件库文件,保留有用的固件库文件 2. 在stm32f10x_conf.h中注释掉这些不用的头文件 3. STM32的I ...

  5. jq跑马灯效果

    这几天公司产品有个无缝循环滚动的广告跑马灯要做,最开始想到的是<marquee>标签,但在PC端正常,在安卓广告屏上却怎么都跑不动,后来用的css3的animation,结果也是PC端及其 ...

  6. Android-TextView跑马灯效果

    要实现跑马灯还是比较简单的. 同时有几个需要注意的点,先上代码: public class MTView extends TextView { public MTView(Context contex ...

  7. jQuery+CSS3文字跑马灯特效

    jQuery+CSS3文字跑马灯特效是一款将跑马灯背景制作为3D立方体效果,文字在上面移动时,就像是文字投影到墙壁上,在转角出会改变运动方向. 效果展示 http://hovertree.com/te ...

  8. IOS跑马灯效果,实现文字水平无间断滚动

    ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController{ NSTimer ...

  9. 【IOS】自定义可点击的多文本跑马灯YFRollingLabel

    需求 项目中需要用到跑马灯来仅展示一条消息,长度合适则不滚动,过长则循环滚动. 虽然不是我写的,但看了看代码,是在一个UIView里面放入两个UILabel, 在前一个快结束的时候,另一个显示.然而点 ...

随机推荐

  1. 用DataReader 分页与几种传统的分页方法的比较

    对于数据库的分页,目前比较传统的方法是采用分页存储过程,其实用 DataReader 也可以实现分页,不需要写存储过程,实现效率上也比几种比较流行的分页方法要略快. 在开始这个方法之前,让我们先创建一 ...

  2. nodejs——避免判断创建多级目录

    基本概念 fs.exists已经弃用,可以使用fs.access判断文件夹是否存在,但是官方的建议是在进行文件操作前不要使用fs.access,官方推荐的方式的是直接进行文件操作,有错误再修改 不建议 ...

  3. MERGE INTO USING用法

    MERGE INTO [your table-name] [rename your table here] USING ( [write your query here] )[rename your ...

  4. Handling unhandled exceptions and signals

    there are two ways to catch otherwise uncaught conditions that will lead to a crash: Use the functio ...

  5. R语言学习 - 热图简化

    绘制热图除了使用ggplot2,还可以有其它的包或函数,比如pheatmap::pheatmap (pheatmap包中的pheatmap函数).gplots::heatmap.2等.   相比于gg ...

  6. CSS绝对定位模拟固定定位

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. UVA - 10048 Audiophobia(Floyd求路径上最大值的最小)

    题目&分析: 思路: Floyd变形(见上述紫书分析),根据题目要求对应的改变判断条件来解题. 代码: #include <bits/stdc++.h> #define inf 0 ...

  8. Django-Rest framework中文翻译-generic-views

    通用视图 Django的通用视图......被开发为常见用法模式的快捷方式......它们采用视图开发中的某些常见习语和模式并对其进行抽象,以便您可以快速编写数据的常用视图,而无需重复自己. - Dj ...

  9. A - Restaurant

    UVA 1468 Description   Mr. Kim is planning to open a new restaurant. His city is laid out as a grid ...

  10. 【Codeforces 279C】Ladder

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 设pre[i]表示i往前一直递增能递增多远 设aft[i]表示i往后一直递增能递增多远 如果aft[l]+pre[r]>=(r-l+1) ...