STM32F1x系列——跑马灯实验-库函数

发布者:boyatang最新更新时间:2019-09-24 来源: eefocus关键字:STM32F1x系列  跑马灯实验  库函数 手机看文章 扫描二维码
随时随地手机看文章

今天根据网上的教程实现了STM32F1系列单片机的跑马灯实验,首先主要分为三个步骤:


(1)使能IO口时钟,调用函数RCC_APB2PeriphClockCmd();不同的IO口,调用的使能时钟不一样


(2)初始化IO口模式。调用函数GPIO_Init();


(3)操作IO口,输出高低电平。GPIO_SetBits();GPIO_ResetBits();


 新建一个样板工程,在工程添加文件夹HAREWARE,并在文件夹添加LED(名字自取)的.c和.h文件,按照上述的步骤,依次添加步骤。


LED.h:


#ifndef __LED_H_

#define __LED_H_

 

void LED_Init(void) ;   //初始化

 

 

#endif


LED.c:


#include "LED.h"

#include "stm32f10x.h"

 

void LED_Init(void) 

{

GPIO_InitTypeDef  GPIO_InitStr ;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);   //GPIOD

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);   //GPIOA

GPIO_InitStr.GPIO_Mode = GPIO_Mode_Out_PP ;  //推挽输出

GPIO_InitStr.GPIO_Pin = GPIO_Pin_2 ;   

GPIO_InitStr.GPIO_Speed = GPIO_Speed_50MHz ;

GPIO_Init(GPIOD,&GPIO_InitStr) ;

GPIO_SetBits(GPIOD,GPIO_Pin_2) ;  //设置高电平

GPIO_InitStr.GPIO_Mode = GPIO_Mode_Out_PP ;  //推挽输出

GPIO_InitStr.GPIO_Pin = GPIO_Pin_8 ;   

GPIO_InitStr.GPIO_Speed = GPIO_Speed_50MHz ;

GPIO_Init(GPIOA,&GPIO_InitStr) ;

GPIO_SetBits(GPIOA,GPIO_Pin_8) ;  //设置高电平

 

}


在main函数中,执行操作,对LED设置高低电平,让其闪烁,并且加上延时函数


#include "stm32f10x.h"

#include "LED.h"

#include "delay.h"

 

 

int main(void)

{

   delay_init();

LED_Init();

 

while(1)

{

GPIO_SetBits(GPIOD,GPIO_Pin_2) ;   //高电平  熄灭

GPIO_SetBits(GPIOA,GPIO_Pin_8) ;

delay_ms(500) ;

 

GPIO_ResetBits(GPIOD,GPIO_Pin_2) ;  //低电平 点亮

GPIO_ResetBits(GPIOA,GPIO_Pin_8) ;

delay_ms(500) ;  

 

}

 

}


就这样,基于STM32F1x系列单片机的简单跑马灯实验便做好了,接下来继续学习STM32F1x系列其他知识,加油!


关键字:STM32F1x系列  跑马灯实验  库函数 引用地址:STM32F1x系列——跑马灯实验-库函数

上一篇:STM32F1x系列——定时器中断
下一篇:STM32F1x系列——按键输入实验

推荐阅读最新更新时间:2024-10-30 20:17

STM8L051之蜂鸣器beep--库函数版(没有用TIM2校准LSI)
STM8L051的蜂鸣器引脚与swin调试口共用一个引脚,虽然使用了beep就不能使用调试功能(程序下载完成后,断开调试的swin,重启即可输出),但还是可以烧写程序到MCU中的。 (**注意**可以不用设置选项位即可使用beep功能) 下面是库函数的代码: void BeepInit() { // BEEP_LSClockToTIMConnectCmd(ENABLE); CLK_PeripheralClockConfig(CLK_Peripheral_BEEP,ENABLE); // BEEP_LSICalibrationConfig(38000); CLK_BEEPClockConfig(CLK_BEEPCL
[单片机]
STM8库函数学习笔记之时钟管理
void CLK_DeInit(void); void CLK_HSECmd(FunctionalState NewState); void CLK_HSICmd(FunctionalState NewState); void CLK_LSICmd(FunctionalState NewState); void CLK_CCOCmd(FunctionalState NewState); void CLK_ClockSwitchCmd(FunctionalState NewState); void CLK_FastHaltWakeUpCmd(FunctionalState NewState); void CLK_Slow
[单片机]
STM32 USART 输入输出C库函数重定向理解
重定向:是指用户可以自己重写c的库函数,当连接器检查到用户编写了与C库函数相同名字的函数时,优先采用用户编写的函数,这样用户就可以实现对库的修改了。 为了实现重定向printf()函数,我们需要重写fputc()这个c标准库函数,因为printf()在c标准库函数中实质是一个宏,最终调用了fputc()这个函数。 例如 用户有一个I/O设备,如USART。本来库函数 fputc()是把字符输出到调试器控制窗口上去,但用户要把数据通过USART输出到串口助手上去,这样一来,用到的基于fputc()函数的printf()系列函数的输出都需要被重定向到USART端口上去。 所以要想使用USART功能,用户必须自己重定向fpu
[单片机]
单片机实验--跑马灯
1.汇编语言的源代码如下: ORG 0000H;这个汇编程序实现的是跑马灯实验 JMP START ORG 0200H DELAY:MOV R1,#50;延时程序,延时0.5秒 DELAY0: MOV R2,#99 DELAY1: MOV R3,#49 DJNZ R3,$ DJNZ R2,DELAY1 DJNZ R1,DELAY0 RET ZX:MOV A, #0FEH ;正序点亮流水灯 L1:MOV P0, A RL A CALL DELAY MOV P2,#0FFH;把P2口写1, SETB C;置C为1 MOV C, P2.1;如果P2.1按下,则C的值为0, JNC J2;C的
[单片机]
STM32入门系列-使用库函数点亮LED软硬件分析
电路图分析 首先找来单片机的原理图,根据原理图进行相关的设计工作。 例如在上图中相同网络标号表示它们是连接在一起的,因此D1发光二极管阴极是连接在STM32的PC0管脚上,D2指示灯阴极连接在PC1管脚上,其他LED管脚以此类推。如果要使D1指示灯亮,只需要控制PC0管脚输出低电平, 如果要使D1指示灯灭,只需控制PC0输出高电平。如果你们使用的是其他板子,连接LED的管脚和极性不一样,那么只需要在程序中修改对应的GPIO管脚和输出电平状态即可,原理是一样的。 要点亮D1发光二极管,也就是让STM32的PC0管脚输出一个低电平。 库函数支持文件 如果采用的是库函数开发,需要复制创建好的库函数模板,在此模板上进行程序开发
[单片机]
STM32入门<font color='red'>系列</font>-使用<font color='red'>库函数</font>点亮LED软硬件分析
Alientek SMT32开发板 跑马灯实验
通过本节的学习,你将了解到STM32的IO口作为输出使用的方法。本节分为如下几个小节: 3.1.1 STM32 IO口简介 3.1.2 硬件设计 3.1.3 软件设计 3.1.4 仿真与下载 3.1.1 STM32 IO简介 作为所有开发板的经典入门实验,莫过于跑马灯了。ALIENTEKMiniSTM32开发板板载了2个LED,DS0和DS1,本实验将通过教你如何控制这两个灯实现交替闪烁的类跑马灯效果。 该实验的关键在于如何控制STM32的IO口输出。了解了STM32的IO口如何输出的,就可以实现跑马灯了。通过这一节的学习,你将初步掌握STM32基本IO口的使用,而这是迈向STM32的第一步。
[单片机]
Alientek SMT32开发板 <font color='red'>跑马灯</font><font color='red'>实验</font>
MSP430F5529 DriverLib 库函数学习笔记(七)定时器B
平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 硬知识 16位定时器B(Timer_B)和Timer_A一样,是MSP430单片机的重要资源。Timer_B往往比Timer_A功能更强大一些,MSP430F5529单片机的Timer_B定时器具有7个捕获/比较寄存器。 Timer_B特点及结构 Timer_B定时器具有以下特点:  具有4种工作模式和4种可选计数长度的异步16位定时/计数器;  参考时钟源可配置;  高达7个可配置的捕获/比较寄存器;  具有PWM输出能
[单片机]
MSP430F5529 DriverLib <font color='red'>库函数</font>学习笔记(七)定时器B
C51 库函数(2)
3.2 STDIO.H:一般I/O函数 C51编译器包含字符I/O函数,它们通过处理器的串行接口操作,为支持其它I/O机制,只需修改getkey()和putchar()函数,其它所有I/O支持函数依赖这两个模块,不需要改动。在使用8051串行口之前,必须将它们初始化,下例以2400波特率,12MHz初始化串口: SCON=0x52 TMOD=0x20 TR1=1 TH1=0Xf3 其它工作模式和波特率等细节问题可以从8051用户手册中得到。 函数名: _getkey 原 型: extern char _getkey(); 功 能: _getkey()从8051串口读入一个字符,然后等待字符输入,这个函数是改变整个 输入端口机制
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved