STM32跑马灯

#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

}

}

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

时间: 2024-10-13 11:41:58

STM32跑马灯的相关文章

Stm32跑马灯实验

#include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h" #include "system_stm32f10x.h" void RCC_Configuration(void); void GPIO_Configuration(); void delay_ms(u16); int main() { SystemInit(); RCC

Vue教程02(跑马灯效果案例) 𽳜

原文: http://blog.gqylpy.com/gqy/423 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

关于跑马灯的体会

1. android:singleLine="true"虽然被不建议使用,但是跑马灯必须是它.如果改为android:maxLines="1",不能实现跑马灯效果. 2. android:marqueeRepeatLimit="marquee_forever" 是否使用,没关系. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android仿京东首页轮播文字(又名垂直跑马灯)

Android仿京东首页轮播文字(又名垂直跑马灯) 京东客户端的轮播文字效果: 本次要实现的只是后面滚动的文字(前面的用ImageView或者TextView实现即可),看一下实现的效果 实现思路 上图只是一个大概的思路,要实现还需要完善更多的细节,下面会一步步的来实现这个效果: 1.封装数据源:从图上可以看到,轮播的文字是分为两个部分的,暂且把它们分别叫做前缀和内容,而且实际的使用过程中点击轮播图肯定是需要跳转页面的,而且大部分应该是WebView,不妨我们就设置点击时候需要获取的内容就是一个

js简单跑马灯案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>跑马灯</title> <style type="text/css"> *{ margin: 0; padding: 0; } #bian{ width: 300px; height: 300px; margin:0 auto

跑马灯《此方法为优化方法,内容不会有闪动效果》

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>跑马灯</title> //css部分 <style type="text/css"> #box { height: 30px; width: 800px; line-height: 30px; background-color:

android 跑马灯

1.在TextView中实现我们的走马灯效果,需要两个属性android:singleLine="true",以及android:ellipsize="marquee": 2.跑马灯效果需要TextVIew获得当前的焦点(focus).然而对于TextView这个控件来说,他的默认的Clickable,LongClickable,Focusable, FocusableInTouchMode这四个属性的值都是false,所以跑马灯效果也就不会出来了,即使你用手触摸T

原生js实现跑马灯抽奖效果

目前好多的微信活动都有一些抽奖活动,其中就有跑马灯. <!DOCTYPE html> <html> <head> <title>跑马灯效果</title> <style> table .pao{ border:1px solid #e5e5e5; padding:10px 20px; } table .on{ border-color:red; color:red; } </style> <script> wi

Android TextView 横向滚动(跑马灯效果)

Android TextView 中当文字比较多时希望它横向滚动显示,下面是一种亲测可行的方法. 效果图: 1.自定义TextView,重写isFocused()方法返回true,让自定义TextView一直处于获取焦点状态. package com.example.shen.marqueedemo; import android.content.Context; import android.util.AttributeSet; import android.widget.TextView;