0
点赞
收藏
分享

微信扫一扫

stm32mini跑马灯-库函数

独孤凌雪 2022-03-11 阅读 34

目录

一、硬件连接

二、GPIO库函数介绍

三、跑马灯编程操作

1、操作流程

2、编码


 

一、硬件连接

        mini 部分原理图

从原理图中可以看出 :LED0连接PA8 ,LED1连接PD2

二、GPIO库函数介绍

1个初始化函数

void GPIO_Init();

2个读取输入电平函数

uint8_tGPIO_ReadInputDateBit();

uint16_tGPIO_ReadInputDate();

2个读取输出电平函数

uint8_tGPIO_ReadOutputDateBit();

uint16_tGPIO_ReadOutputDate();

4个设置输出电平函数

void GPIO_SetBits();

void GPIO_ReSetBits(); //前两个常用,后两个不常用

void GPIO_WriteBit();

void GPIO_Write();

三、跑马灯编程操作

1、操作流程

<1>使能IO口时钟。调用函数RCC_APB2PeriphColckCmd();

不同的IO组,调用的时钟使能函数不一样。

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

<3>操作IO口,输出高低电平。

GPIO_SetBits();输出高电平。

GPIO_ResetBits();输出低电平。

2、编码

<1>在template(工程模板)文件夹下建立HAREWARE文件夹,再在HAREWARE下建立LED文件夹。

<2>在MDK5中template中建立HAREWARE分组。

<>在MDK5中建立led.c和led.h两个文件,保存到LED文件夹下。

在FWLIB—stm32f10x_gpio.c—stm32f10x_gpio.h文件夹下可以找到一些管口定义

在FWLIB—stm32f10x_rcc.c—stm32f10x_rcc.h文件夹下可以找到一些时钟函数

led.c程序如下

#include "led.h"

void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//io口类型 结构初始化

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //io口设置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_8);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_SetBits(GPIOD,GPIO_Pin_2);

}

led.h程序如下

#ifndef __LED_H
#define __LED_H
#include "sys.h"

#define LED0 PAout(8)//宏观定义A8输出口
#define LED1 PDout(2)
void LED_Init(void);
#endif

 

<3>将led.c的文件加到HARDWARE文件夹下,led.h加到路径下

<4>接下来编写main,c的程序

#include "led.h"
#include "delay.h"
#include "sys.h"

int main(void)
{
delay_init(); ¯
LED_Init();
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_8); //A8口输出低电平
GPIO_SetBits(GPIOD,GPIO_Pin_2);//D2口输出高电平
delay_ms(300);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_ResetBits(GPIOD,GPIO_Pin_2);
delay_ms(300);
}
}

程序编写完成,依次点击便可下载

 

举报

相关推荐

0 条评论