今天根据网上的教程实现了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系列——按键输入实验
推荐阅读最新更新时间:2024-10-30 20:17
设计资源 培训 开发板 精华推荐
- MPC5777C BMSS与发动机控制开发板
- STA308A,是一款用于数字音频处理的单芯片解决方案
- 【训练营】4G 遥控机器狗
- LT1021DCN8-10 的典型应用从 5V 电源运行 5V 基准
- LT6654AMPS6-5 八路 DAC 电压基准的典型应用
- DER-704 - 45W USB PD 3.0,基于InnoSwitch3-Pro和VIA Labs VP302控制器的3.3 V-16 V PPS电源
- C8051F580DK,C8051F584 8051 MCU 工业应用开发系统
- IP6806无线充
- LT1308BIS8 SEPIC 的典型应用电路将 3V 至 10V 输入转换为 5V/500mA 稳压输出
- #第七届立创电赛#N32G430姿态显示