STM32入门教程(江协科技)

3-1 && 3-2 GPIO输出 & LED & 流水灯 & 蜂鸣器

A.初始化

GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

以上这四个是常用的端口使用函数

这是端口初始化和开启时钟

用于开启时钟的函数及其函数解释

GPIO初始化所需要的结构体

GPIO初始化所需要的结构体,其中的模式和速度如上所示

B.LED点亮

第一种写法(所有代码都应放在while(1)循环内)

GPIO WriteBit(GPIOA,GPIO Pin O,Bit_RESET);
Delay ms(500);
GPIO WriteBit(GPIOA,GPIO Pin 0,Bit_SET);
Delay ms(500);

第二种

GPIO ResetBits(GPIOA,GPIO Pin 0);
Delay ms(500);
GPIO SetBits(GPIOA,GPIO Pin 0);
Delay ms(500);

以上两种都是可以,只不过函数的使用方法不一样。

C.LED流水

在LED点亮的基础上直接复制8次既可,也可以用下面这个函数

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);

D.蜂鸣器

蜂鸣器的使用与点亮LED方法相似,找到对应引脚,接上线,然后代码改一下对应的引脚和端口就可以了。然后再端口的初始化位置也要改成相应的端口。如下图所示

这里假设使用PB12的端口,如下

GPIO WriteBit(GPIOB,GPIO Pin 12,Bit_RESET);
Delay ms(500);
GPIO WriteBit(GPIOB,GPIO Pin 12,Bit_SET);
Delay ms(500);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值