【跟着江科大学Stm32】GPIO_LED_流水灯_蜂鸣器

发布者:乘风翻浪最新更新时间:2022-07-29 来源: csdn关键字:Stm32  GPIO  LED  流水灯  蜂鸣器 手机看文章 扫描二维码
随时随地手机看文章

一、LED闪烁

在这里插入图片描述

#include "stm32f10x.h"                  // Device header

#include "Delay.h"


int main(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStructure);

//GPIO_SetBits(GPIOA, GPIO_Pin_0);

//GPIO_ResetBits(GPIOA, GPIO_Pin_0);//置0

GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);

while(1)

{

// GPIO_SetBits(GPIOA,GPIO_Pin_0);

// Delay_ms(100);

// GPIO_ResetBits(GPIOA,GPIO_Pin_0);

// Delay_ms(100);

GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1);

Delay_ms(100);

GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)0);

Delay_ms(100);

}

}


注意:GPIO_WriteBit(GPIOA,GPIO_Pin_0,(BitAction)1); 相当于GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET); 前面的(BitAction)是为了把1强制转换为枚举类型(和Bit_SET同类型)

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 推挽输出高、低电平都有驱动能力

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_DP;开漏输出高电平相当于高阻态,没有驱动能力,低电平有。


二 、LED流水灯

在这里插入图片描述

#include "stm32f10x.h"                  // Device header

#include "Delay.h"


int main(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

while (1)

{

GPIO_Write(GPIOA, ~0x0001); //0000 0000 0000 0001

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0002); //0000 0000 0000 0010

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0004); //0000 0000 0000 0100

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0008); //0000 0000 0000 1000

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0010); //0000 0000 0001 0000

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0020); //0000 0000 0010 0000

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0040); //0000 0000 0100 0000

Delay_ms(100);

GPIO_Write(GPIOA, ~0x0080); //0000 0000 1000 0000

Delay_ms(100);

}

}


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; 一次性 初始化所有IO


三、蜂鸣器(低电平触发)

在这里插入图片描述

#include "stm32f10x.h"                  // Device header

#include "Delay.h"


int main(void)

{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

while (1)

{

GPIO_ResetBits(GPIOB, GPIO_Pin_12);

Delay_ms(100);

GPIO_SetBits(GPIOB, GPIO_Pin_12);

Delay_ms(100);

GPIO_ResetBits(GPIOB, GPIO_Pin_12);

Delay_ms(100);

GPIO_SetBits(GPIOB, GPIO_Pin_12);

Delay_ms(700);

}

}


要注意IO口的选择,这里我选的是PB12,像PA13和PA14是用来做调试的,不宜直接选来作普通IO使用,如果非要用,需要进行一定的配置。(直接用,会没反应)

在这里插入图片描述

使用库函数的方法

第一种

打开.h文件,control + End跳到最后看看都有哪些函数,再右键转定义查看函数的参数、用法


第二种

打开资料中的库函数用户手册,里面有所有函数的介绍和使用方法,有中文档,并且下方还有例子,要用的话可以直接复制过来用。不过要注意版本对不对应,部分用法会有些不同,但整体没差。


第三种

打开帮助文件,是全英文的

在这里插入图片描述
在这里插入图片描述

关键字:Stm32  GPIO  LED  流水灯  蜂鸣器 引用地址:【跟着江科大学Stm32】GPIO_LED_流水灯_蜂鸣器

上一篇:【跟着江科大学Stm32】GPIO_按键控制LED_光敏传感器控制蜂鸣器
下一篇:STM32F103C8T6——我用错了转换器,导致串口的收到的都是乱码

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

基于TPIC6B273的LED驱动控制设计
摘要:TPIC6B273是美国TI公司生产的集8位数据锁存、功率驱动为一体的新型复合功能器件它是一种8通道D型触发器锁存、功率输出器件。文中用硬件电路原理图的形式给出了利用该器件设计的3种LED显示器件驱动电路的实例。 关键词:TPIC6B273;LED;功率器件;显示驱动 1 概述 TPIC6B273是美国TI公司生产的一种8通道D型触发器锁存、功率输出新型器件,该器件集8位数据锁存、驱动输出控制为一体, 可用于LED显示器的驱动等方面。其基本特点为: ● 具有8通道功率DMOS晶体管输出,每个通道可连续输出150mA的电流; ● 各输出回路导通电阻低至5Ω; ● 每个输出通道典型限定能力为500mA; ●
[应用]
基于STM32定时器的DMA BURST传输为什么实现不了呢?
有人使用STM32F4系列开发产品,程序运行过程中需要不时地对外输出一串驱动脉冲,并要求这几串脉冲的频率可变、占空比固定。他想到使用基于STM32定时器的DMA BURST传输。具体点说,他期望不时地通过TIM3的CH1输出一串频率可变、占空比固定的脉冲然后停下来。这个思路在原理上是没问题的,可是他在测试过程中发现怎么也折腾不出预期的效果。 他目前使用的芯片是STM32F401,虽有点老旧,但我查看了手册,确认该芯片的TIM3是支持基于TIMER事件实现TIME寄存器与内存间的DMA BURST传输的。即每个TIMER事件可以申请多个DMA请求从而实现定时器寄存器与内存间的批量数据传输。要知某个STM32 TIMER是否支持上
[单片机]
基于<font color='red'>STM32</font>定时器的DMA BURST传输为什么实现不了呢?
使用pinctrl和gpio子系统实现LED灯驱动
前边已经学了两种点灯,本质依然还是通过配置寄存器;在学习STM32的时候除了学习配置一下寄存器,基本都是使用库来开发,那么在i.MX6ULL还使用寄存器开发明显是不太适合,那么i.MX6ULL有更方便的开发呢,这篇就来学习一下使用 pinctrl 和 gpio 子系统来完成 LED 灯驱动。 |修改设备树文件 添加 pinctrl 节点 开发板上的 LED 灯使用了 GPIO1_IO04这个 PIN,打开 imx6ull-14x14-evk.dts,在 iomuxc 节点的 imx6ul-evk 子节点下创建一个名为“pinctrl_led”的子节点,节点内容如下所示: /* 添加的 */ pinctrl_led
[单片机]
使用pinctrl和<font color='red'>gpio</font>子系统实现<font color='red'>LED</font>灯驱动
太阳能与LED照明结合体成为绿色新能源
  当今世界,石油、煤炭、天然气等主要能源正面临资源枯竭的危险,同时,环保压力也在不断增加,因此,环保、节能已经成为世界范围内各行各业努力追求的目标。太阳能是一种清洁的绿色能源,半导体发光二极管(LED)也是一种环保、节能、高效的固态电光源。   在过去的一百多年中,照明光源经历了三个重要的阶段:白炽灯,荧光灯,HID灯。其中白炽灯是第一代光源,荧光灯是第二代光源,高强度气体放电灯是第三代光源(HID)。如今在照明界具有广阔的发展前景的LED光源被称为第四代光源。LED作为新颖的半导体光源,具有寿命长、发光效率高、功耗低、启动时间短、结构牢固等特点。    1.太阳能光伏发电的原理   太阳能光伏发电是依靠太阳能电池组件,利用半
[电源管理]
CREE:从LED芯片供应商向LED器件供应商转变
相关政策标准不断出台,新的企业不断涌入,技术研发成果不断刷新......,纵观下来,目前整个LED市场可谓风生水起。大好形势下,问题却也是层出不穷,有人喜,也有人忧。CREE作为全球LED外延、芯片、封装、LED应用解决方案与化合物半导体材料为一体的着名制造商,致力于推广高效节能的LED绿色照明,那么对于LED产业的发展现状又是如何看待的呢?为此LED环球在线“对话行业领军人”栏目组专访了CREE中国区市场总经理唐国庆,以下是采访实录: LED环球在线:CREE作为国际领先的LED制造商,能否简单介绍下贵公司的产品及应用方向。这些产品较市场上其它的品牌有什么独特的地方和优势?能举例说明吗? 唐国庆先生:科锐(C
[电源管理]
BOE(京东方)携手联想重磅发布两款4K主动式玻璃基Mini LED显示器 定义Mini LED显示器画质新
BOE(京东方)携手联想重磅发布两款4K主动式玻璃基Mini LED显示器 定义Mini LED显示器画质新标准 11月20日, BOE(京东方)携手联想Think Vision重磅发布两款全新4K主动式玻璃基(AM COG)Mini LED显示器,全面搭载由BOE(京东方)α-MLED技术品牌赋能的27英寸和31.5英寸显示屏 ,融合了超清画质,卓越色彩,以及健康护眼无闪烁、高分区精准控光等多项行业领先技术,可有效满足设计、医疗、广播监视等多场景使用需求,为众多创作用户带来极佳的视觉享受与使用体验,定义了Mini LED显示器画质新标准,充分彰显了BOE(京东方)在新型MLED显示领域强大的技术领导力和产业应用能力。 在
[家用电子]
Fairchild 的集成化LED照明解决方案简化智能LED照明产品的开发
加利福尼亚桑尼维尔 2016 年5月 23日 全球领先的高性能功率半导体解决方案供应商Fairchild (NASDAQ: FCS) 在2016年PCIM展会上发布了新产品 FL77944,这是Fairchild首个交流直接驱动系列LED固态照明解决方案,制造商使用该解决方案可以轻松扩展功率大小,创造智能可扩展的 LED 照明产品。与使用开关电源 (SMPS) 解决方案的产品相比,这些产品可具有更小的尺寸、更高的性能和更长的系统寿命。 Fairchild 电源系统事业部高级副总裁 Gaurang Shah 表示: 与基于 SMPS 技术的昂贵照明驱动相比,我们的 FL77944交流直接驱动LED是更加适合固态 LED 照
[电源管理]
Fairchild 的集成化<font color='red'>LED</font>照明解决方案简化智能<font color='red'>LED</font>照明产品的开发
关于stm32的ad7792移植难题排解
转换原理及参数指标 1. 采样定理 2. 为了正确无误的用图5.2.2中所示的采样信号vs表示模拟信号vi,必须满足式中, fs =2fmax fs为采样频率;fmax为输入信号vi的最高频率分量的频率;上式就是所谓的采样定理。满足采样定理的条件下,可以用一个低通滤波器将信号vs还原为vi,这个低通滤波器的电压传输系数|A(f)|在低于fmax的范围内应保持不变,而在fs-fmax以前应迅速下降为零,采样定理规定了A/D转换的频率下限。 AD7792 遇到的问题/学到的知识点 学到的知识点: 1.在stm32中 U8 : unsigned char U16: unsigned short U32: unsigned int 2.
[单片机]
关于<font color='red'>stm32</font>的ad7792移植难题排解
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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