嵌入式铁头山羊STM32-各章节详细笔记-查阅传送门(点击传送)


目录

1.实验目的

2.接线方式科普

3.明确最小系统板(当前操纵指南去查找电路图)控制的接线方法

4.建立模板工程

5.GPIO时钟

6.GPIO模块编程的四大接口

7.前面的三大接口的具体参数

8.明确实验对应的配置

9.代码

10执行操作


1.实验目的

使用程序实现led灯的闪烁

2.接线方式科普

(1)推挽接法(2)开漏接法

简单来说前者是LED灯阳极接了个推挽模式的mos管(0/1对应灯灭/亮),后者是LED阴极接了个开漏模式的mos管(0/1对应灯的亮/灭)

3.明确最小系统板(当前操纵指南去查找电路图)控制的接线方法

4.建立模板工程

  • 解压模板文件
  • 修改模板工程文件名(两个)为当前实验名
  • 在默认的main.c里面编程即可

简单来说就是有了一个模板代码,该模板当前的功能是空的,就等你写功能了。

便于直接写功能代码,无需做额外的繁琐操作(引入lib等等)

5.GPIO时钟

简单来说,就是GPIO是手(执行操作),时钟是心脏,心脏去供给手去执行操作,要执行GPIO操作之前必须开启时钟(其实可以想象成要执行操作前先开启开关(时钟))。

6.GPIO模块编程的四大接口

  • 首先是初始化,就是初始化当前要操作的某根引脚,实现配置的初始化,即8种模式的选择与最大输出速度的选择。
  • 之后是顾名思义向寄存器写0/1控制引脚
  • 输入的这个后面再学
  • 最后是从输出的寄存器(最近的一次输出)里面读取0/1

7.前面的三大接口的具体参数

8.明确实验对应的配置

首先是前面说过了是开漏的,并且电路图明显看出是CPU直接操作的,比较更方便

之后是PC13来自GPIOC,所以类型是C,

之后引脚是13(引脚编号)

9.代码

注意,使用的delay函数,是自己引进来的,本来是没有这个函数的,需要头文件引入

#include "stm32f10x.h"
#include "Delay.h"

int main(void)
{
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	GPIO_InitTypeDef GPIO_InitStruct={0};
	GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13;
	GPIO_InitStruct.GPIO_Speed=GPIO_Speed_2MHz;
	GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_OD;
	
	GPIO_Init(GPIOC,&GPIO_InitStruct);
	
	
	
	
	while(1)
	{
		GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET);
		Delay(100);//100ms延迟
		GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_RESET);
		Delay(100);
	}
}

10执行操作

(1)光运行的话,直接编译然后下载然后复位就行

(2)debug的话,就是先点品符号旁边的魔法棒按钮,将debug选择为STlink,然后编译代码,然后点击右上角的放大镜带d的按钮执行debug操作,点击一行行的调试,注意因为默认是0,所以当初始化配置完后,他是亮的(因为是开漏接法)

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐