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 */
遇到不懂得函数可以右键查找。
其实不同的开发板就是引脚号不一样,很容易修改,自己画板子也一样。
本文地址:https://blog.csdn.net/weixin_46350256/article/details/109264986
下一篇: oracle运维基础操作
推荐阅读
-
堆料并不是唯一!索泰GeForce RTX 3070 PGF OC评测:独一无二的ARGB-LED灯效
-
首款400W TGP非公旗舰!索泰RTX 3080Ti PGF评测:独一无二的ARGB-LED灯效
-
lLinux驱动学习之编写一个简单的led驱动
-
Arduino小白学习记录:用电位器控制LED灯的亮度
-
Win10开机硬盘灯一直闪怎么解决? win10硬盘灯闪烁的解决办法
-
堆料并不是唯一!索泰GeForce RTX 3070 PGF OC评测:独一无二的ARGB-LED灯效
-
硬盘指示灯不停闪烁一秒钟闪一次的解决方法
-
首款400W TGP非公旗舰!索泰RTX 3080Ti PGF评测:独一无二的ARGB-LED灯效
-
stm32F103学习(一) LED灯的闪烁
-
Win10开机硬盘灯一直闪怎么解决? win10硬盘灯闪烁的解决办法