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

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

概述

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


电路图

电路图

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); //延迟,保持高电平一段时间

}

}


学习笔记

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


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


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


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


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

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

上一篇:Keil环境下STM32F4工程创建步骤
下一篇:STM32学习笔记七——LED闪烁的三种控制方法

推荐阅读最新更新时间:2024-11-08 08:50

STM32 CAN总线标识符过滤器难点解析
CAN总线是目前应用非常多的一种总线,在汽车电子,航空航天中应用广泛,博主用的是战舰的STM32开发板。CAN的介绍和功能特点就不讲了,书本上网上都有,请大家在阅读本文前了解CAN总线协议的特点和功能。今天博主将和大家共同学习CAN总线标识符过滤器的使用(非常重要!) 请认真读这段话(来自STM32中文参考手册):在CAN协议里,报文的标识符不代表节点的地址,而是跟报文的内容相关的。因此,发送者以广播的形式把报文发送给所有的接受者。节点在接收报文时,根据标识符的值,决定软件是否需要该报文;如果需要,就拷贝到SRAM里;如果不需要,报文就丢弃,且无需软件的干预。在,STM32F103ZET6这款芯片中,bxCAN控制器为应用程
[单片机]
<font color='red'>STM32</font> CAN总线标识符过滤器难点解析
STM8的AIR与STM32的Keil的指定地址存数据
一, 经验分享描述 写这篇经验分享的原因是,之前有一个客户,他希望在KE02的芯片中,不要出现使用EEPROM操作命令的形式初始化EEPROM,但是需要芯片的EEPROM中就有他所规定好的数据,以便于程序直接调用。其实就把EEPROM中的数据当做固定在flash的数据一样使用。而目前也没有看到使用具体的工具去直接烧写EEPROM,所以我们就想是否能够像flash的constant的定义一样定义EEPROM的数据呢?通过实际操作发现还是切实可行的,于是就分享了这篇在IAR与KEIL中如何直接定义常量到EEPROM中的经验分享。其实方法和之前本人分享过的经验分享“KE02在CW中使用常量形式初始化EEPROM值”合为姐妹篇,当然这种方
[单片机]
STM8的AIR与<font color='red'>STM32</font>的Keil的指定地址存数据
STM32-(02):结识STM32
全新的Cortex架构系列,为嵌入式市场提供了一个三管齐下的解决方案。 1、 Cortex-A:高性能应用处理器;(越来越接近电脑) 2、 Cortex-R:专门针对实时、深度嵌入式解决方案;(又要快又要实时); 3、 Cortex-M:专注于低成本嵌入式微控制器;(好用又便宜) A:需要运行复杂应用程序的“应用处理器”,支持大型嵌入式操作系统(不一定实时),比如Symbian (诺基亚智能手机用),Linux,以及微软的WindosCE和智能手机操作系统Windos Mobile。这些应用需要劲爆的处理能力,并且需要硬件MMU实现的完整而强大的虚拟内存机制,还基本上配有Java支持,有时还要求一个安全程序执行环境(用于电子商务
[单片机]
STM32-(02):结识<font color='red'>STM32</font>
STM32的SPI
通常SPI通过4个引脚与外部器件相连: ● MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。 ● MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。 ● SCK:串口时钟,作为主设备的输出,从设备的输入 ●NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从设备的NSS引脚可以由主设备的一个标准I/O引脚来驱动。一旦被使能(SSOE位),NSS引脚也可以作为输出引脚,并在SPI处于主模式时拉低;此时,所有的SPI设备,如果它们的NSS引脚连接到主设备的NSS引脚,则
[单片机]
<font color='red'>STM32</font>的SPI
STM32到CONST的全局变量
程序如下: const int globalConstDat = 12; int globalDat = 11; int main(void) { int localDat = 6; const int localConstDat = 7; USART_Configuration(); //ptint to PC from USART1 printf( &globalConstDat = 0x%p, &globalDat = 0x%prnrn , &globalConstDat, &globalDat); printf( &localDat = 0x%p, &localConstDat = 0x%prn , &localDat
[单片机]
基于LabVIEW的STM32调试平台设计
0引言 ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。ARM处理器具有耗电少功能强、1 6位/32位双指令集和合作伙伴众多等特点。本设计采用STM32F103ZET6芯片进行研究。此芯片采用ARM 32位的Cortex-M3 CPU作为内核,芯片带有2通道12位的D/A转换器,12通道DMA控制器能支持外设:定时器、ADC、DAC、USART等,具有112个快速IO端口。同时此芯片具有多达13个通信接口,其中包括USB2.0全速接口 . LabVIEW是一种程序开发环境,采用图标代替文本行创建应用程序的图形化编程语言。LabVIEW是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和
[单片机]
基于LabVIEW的<font color='red'>STM32</font>调试平台设计
STM32跑马灯实验——库函数版本
1.编写led.h文件 #ifndef __LED_H #define __LED_H //如果标识符__LED_H没有被定义,则定义标识符__LED_H, void LED_Init(void); #endif 3,编写led.c文件 #include led.h #include stm32f4xx.h void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE); GPIO_InitStructure.GP
[单片机]
STM32之option bytes踩坑记录
最近在做一个 stm32 项目,用的盗版jlink调试,突然某次下完程序,stm32竟然开始无限重启了,量了一下复位脚,发现有周期性的重启脉冲输出,一开始我以为是硬件坏了,重新焊了一套硬件,发现新焊的是好的,但是原来那块板子,检查来检查去感觉也不像是硬件和程序的问题。 后来我查了一些资料,想到去检查复位后的RCC_CSR寄存器,这里会标识系统是由哪个信号引发的reset,看了以后才发现是由于看门狗引起的,但是看门狗我软件上都一直没开过,感觉非常奇怪。 后来查了些资料才发现: STM32的独立看门狗可以是硬件使能或软件使能,硬件使能是通过option bytes配置,软件使能是通过软件设置寄存器位配置。 硬件使能的看
[单片机]
<font color='red'>STM32</font>之option bytes踩坑记录
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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