STM32入门之点亮LED灯(以STM32F103为例) |
您所在的位置:网站首页 › 3dmax默认灯光最多设置几个灯亮 › STM32入门之点亮LED灯(以STM32F103为例) |
目录
一、原理简介1.1 原理图1.2 GPIO功能描述简介1.3 硬件连接
二、代码实现与原理分析(详细)2.1 代码实现2.2 配置步骤2.3 原理分析2.3.1 GPIOx_CRL、GPIOx_CRH2.3.2 GPIOx_BRR、GPIOx_BSRR
三、仿真测试3.1 软件逻辑分析仪DEBUG3.2 硬件效果
四、小结
写在前面的话:前面我们对新建工程文件以及STM32的时钟配置做了讲解,相信大家都有了一定的了解,对代码的大致框架以及STM32内部的时钟有了深入的认识,本次入门的第一讲最基础的就是对端口GPIO的应用。
一、原理简介
1.1 原理图
首先我们先看一下自己的STM32开发板的原理图,以我使用的为例如图所示: 可以稍微看一下GPIO的功能描述,如图所示(图源自STM32参考手册): 本文我们要完成的是点亮LED,从最简单的角度去思考,我们需要做的就是让一个端口输出高电平或者低电平实现点亮或者关闭LED灯的效果,我们先来看一下硬件连接图: 按照我们之前新建工程的博文的格式规范,我们先在工程文件user文件夹下新建名为led的文件夹,并创建led.c和led.h文件,如下图所示: led.h: #ifndef __LED_H #define __LED_H #include "main.h" void led_init(void); #endifmain.c: /* STM32F103VET6 SYSCLK = 72M HCLK = 72M APB1 = 36M APB2 = 72M */ #include "main.h" int i,j; int main(void) { led_init(); //LED初始化 while(1) { GPIO_ResetBits(GPIOB,GPIO_Pin_0); //点亮LED for(i=0;iGPIO_Mode) & ((uint32_t)0x10)) != 0x00) { /* Check the parameters */ assert_param(IS_GPIO_SPEED(GPIO_InitStruct->GPIO_Speed)); /* Output mode */ currentmode |= (uint32_t)GPIO_InitStruct->GPIO_Speed; } /*---------------------------- GPIO CRL Configuration ------------------------*/ /* Configure the eight low port pins */ if (((uint32_t)GPIO_InitStruct->GPIO_Pin & ((uint32_t)0x00FF)) != 0x00) { tmpreg = GPIOx->CRL; for (pinpos = 0x00; pinpos |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |