欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

stm32F103学习(一) LED灯的闪烁

程序员文章站 2022-04-07 18:06:56
stm32在使用IO口的时候需要先配置时钟,因为库函数操作,也是配置寄存器,寄存器运作根据它的工作原理就需要时钟,51单片机因为是时钟默认,所以不用配置,但是功耗大,32可以配置需要的区域的时钟。void LED_Init() //端口初始化{GPIO_InitTypeDef GPIO_InitStructure; //声明一个结构体变量,用来初始化GPIOSystemInit();//时钟初始化RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,...

stm32在使用IO口的时候需要先配置时钟,因为库函数操作,也是配置寄存器,寄存器运作根据它的工作原理就需要时钟,51单片机因为是时钟默认,所以不用配置,但是功耗大,32可以配置需要的区域的时钟。

void LED_Init()	  //端口初始化
{
	GPIO_InitTypeDef GPIO_InitStructure; //声明一个结构体变量,用来初始化GPIO

	SystemInit();	//时钟初始化
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//开启GPIOC的外设时钟

	/*  配置GPIO的模式和IO口 */
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7;  //选择你要设置的IO口
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;	 //设置推挽输出模式
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;	  //设置传输速率
	GPIO_Init(GPIOC,&GPIO_InitStructure); 	    /* 初始化GPIO */

 	    /* 初始化GPIO */
}

/*******************************************************************************
* 函 数 名         : led_display
* 函数功能		   : LED显示函数  LED闪烁
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void led_display()
{
	GPIO_SetBits(GPIOC,GPIO_Pin_7); //关闭PC7引脚
	delay(6000000);//延时约为1s
	GPIO_ResetBits(GPIOC,GPIO_Pin_7); //打开PC7引脚
	delay(6000000);
}

不懂得函数可以查阅官方的文件,举个例子,typedef定义了一个类型的结构体,起了个名字叫GPIO_IniTypeDef,用户需要自己创建这个类型的结构体。

typedef struct
{
  uint16_t GPIO_Pin;           
  GPIOSpeed_TypeDef GPIO_Speed;
  GPIOMode_TypeDef GPIO_Mode;   
}GPIO_InitTypeDef;

注意GPIO初始化的语句,第一个参数填写的是GPIOC,没有地址符,因为GPIOC就是地址,第二个要加上取地址符。

	GPIO_Init(GPIOC,&GPIO_InitStructure); 	    /* 初始化GPIO */

遇到不懂得函数可以右键查找。
stm32F103学习(一) LED灯的闪烁

其实不同的开发板就是引脚号不一样,很容易修改,自己画板子也一样。

本文地址:https://blog.csdn.net/weixin_46350256/article/details/109264986