STM32固件库实现led亮灭闪烁和音频发生器设计

发布者:konglingdeyuan最新更新时间:2020-06-14 来源: eefocus关键字:STM32  固件库  led亮灭闪烁  音频发生器 手机看文章 扫描二维码
随时随地手机看文章

概述

本文使用STM32F10X,软件为Keil uVision5,仿真软件Proteus 8 Professional

电路图

实现代码

学习笔记

8个led


电路图

电路图

8个led亮灭实现代码

实现代码


//8¸öledÈ«ÁÁÈ«Ãð

#include "stm32f10x.h"

int main()

{


GPIO_InitTypeDef star;

//配置开启GPIO时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

//设置GPIO输出模式

    //stm32F1提供了4种输出模式(推挽输出、开漏输出 、复用推挽输出 、复用开漏输出)和3种输出速度;一般配置LED采用推挽输出;

star.GPIO_Pin =GPIO_Pin_All;

star.GPIO_Speed =GPIO_Speed_50MHz;设置IO速率

star.GPIO_Mode =GPIO_Mode_Out_PP;//设置推挽输出模式

//初始化

GPIO_SetBits(GPIOB,GPIO_Pin_All);

GPIO_Init(GPIOB,&star);

//第一种方法

GPIO_Write(GPIOB,0xff00);

//第二种方法

while(1)

{

// GPIO_ResetBits(GPIOB,GPIO_Pin_8);

// GPIO_ResetBits(GPIOB,GPIO_Pin_9);

// GPIO_ResetBits(GPIOB,GPIO_Pin_10);

// GPIO_ResetBits(GPIOB,GPIO_Pin_11);

// GPIO_ResetBits(GPIOB,GPIO_Pin_12);

// GPIO_ResetBits(GPIOB,GPIO_Pin_13);

// GPIO_ResetBits(GPIOB,GPIO_Pin_14);

// GPIO_ResetBits(GPIOB,GPIO_Pin_15);

//

}

}


8个led闪烁实现代码

实现代码


#include"stm32f10x.h"

void Delay(unsigned int count)  

{

unsigned int i;

for(;count!=0;count--)

{

i=5000;

while(i--);

}

}

 int main()

{

GPIO_InitTypeDef strs;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

strs.GPIO_Pin = GPIO_Pin_All;

strs.GPIO_Speed = GPIO_Speed_50MHz;

strs.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_Init(GPIOB,&strs);

 

while(1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_All);

Delay(100);

  GPIO_SetBits(GPIOB,GPIO_Pin_All);

Delay(100);

}

}


音频发生器

电路图

电路图

实现代码


#include "stm32f10x.h"

void Delay(unsigned int count)   //ÑÓʱº¯Êý

{

unsigned int i;

for(;count!=0;count--)

{

i=5000;

while(i--);

}

}

int main(void)

{

GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GIPOC时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PC5引脚配置

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //配置PC5为推免输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //GPIOB速度为50MHz

    GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化PC5

GPIO_SetBits(GPIOC,GPIO_Pin_5); //PC5输出高电平,LED熄灭

while(1)

{

GPIO_ResetBits(GPIOC,GPIO_Pin_5); //PC5输出低电平

Delay(10); //延迟,保持低电平一段时间

GPIO_SetBits(GPIOC,GPIO_Pin_5); //PC5输出高电平

Delay(10); //延迟,保持高电平一段时间

}

}


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

学习笔记

输入: 上拉输入,下拉输入,浮空输入,模拟输入


输出:通用推挽输出,通用开漏输出,复用推挽输出,复用开漏输出


首先开启GPIO时钟,然后设置GPIO输出模式为推挽输出,接着初始化led


GPIO_ResetBits(GPIOC,GPIO_Pin_0);//PAO=0 ,输出低电平


GPIO_SetBits(GPIOC,GPIO_Pin_0);//PAO=1,输出高电平

关键字:STM32  固件库  led亮灭闪烁  音频发生器 引用地址:STM32固件库实现led亮灭闪烁和音频发生器设计

上一篇:STM32基于固件库学习笔记(5)电源管理之低功耗模式
下一篇:STM32学习笔记(5):通用定时器PWM输出

小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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