【32学习-01】万恶之源-点亮一个LED

前提示

STM32打开外设资源的步骤

  1. 打开硬件电源时钟,打开哪些开关才能开启时钟RCC
  2. 配置硬件模式
  3. 使能硬件工作

代码

思路

1、首先开启时钟

比如我想要设置GPIOA的PA8脚连接灯,就需要开启GPIOA的时钟。
在这里插入图片描述
这里需要注意的是

Enables or disables the High Speed APB (APB2) peripheral clock.
(翻译)启用或禁用高速 APB (APB2) 外设时钟。
要注意使用的外设是不是挂在APB2这个时钟上

2、配置硬件模式

意思是我想要对GPIOA进行PA8进行设置我需要对GPIO进行初始化,设置一些参数模式。
在这里插入图片描述

结构体用法

GPIO_InitTypeDef + 名称,然后名称.出参数,选择你所需要的参数。
在这里插入图片描述在这里插入图片描述
配置好后如图
在这里插入图片描述

3、点灯

GPIO_SetBits(GPIOA,GPIO_Pin_8);						 	//PA.8 输出高

GPIO_ResetBits 置低
GPIO_SetBits 置高

参考代码

#include "stm32f10x.h"
//假延时
 void Delay(u32 count)
 {
  u32 i=0;
  for(;i<count;i++);

 }
 
 int main(void)
{	
	GPIO_InitTypeDef  GPIO_InitStructure;

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);	 //使能PA,PD端口时钟

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;				 //LED0-->PA.8 端口配置
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
	GPIO_Init(GPIOA, &GPIO_InitStructure);					 //根据设定参数初始化GPIOA.8
	GPIO_SetBits(GPIOA,GPIO_Pin_8);						 	//PA.8 输出高

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;	    		 //LED1-->PD.2 端口配置, 推挽输出
	GPIO_Init(GPIOD, &GPIO_InitStructure);	  				 //推挽输出 ,IO口速度为50MHz
	GPIO_SetBits(GPIOD,GPIO_Pin_2); 						 //PD.2 输出高 	  
	while(1)
	{
		GPIO_ResetBits(GPIOA,GPIO_Pin_8);
		GPIO_SetBits(GPIOD,GPIO_Pin_2);
		Delay(3000000);
		GPIO_SetBits(GPIOA,GPIO_Pin_8);
		GPIO_ResetBits(GPIOD,GPIO_Pin_2);
		Delay(3000000);
	}
}

这篇没有总结,只有一些逼逼赖赖

本来打算一个一个工程的解读正点原子的示例代码的,但是感觉没必要基本上按照这个思路点灯、跑马灯基本都给过了一遍了!!!

但是我刚刚在查看跑马灯的时候,看到了一个有趣的操作。
在这里插入图片描述
STM32位带操作

PAout(n)作为左值使用,PAin(n)作为右值使用

在这里插入图片描述
然后正点的示例程序大都是按照这个来的。
算是知识的拓展了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值