stm32学习——点亮最小系统板上的LED

目录

       无敌且神经的小程

1.前言

2.代码

1.直接配置寄存器

2.调用库函数 

3.复习工程建立

4.结语


1.前言

   今天水一篇博客,最近开始了stm32的学习,发现这玩意跟51没法比,TM难死我了,相比于51那c语言过家家,32全是指针,结构体,枚举,还有一大堆库函数,没法搞,本来c基础都不好,根本看不懂,下载器刚开始也不会用,买的daplink,搞一晚上没结果,最后发现是一根杜邦线坏了,真的很难过,两天点一个灯,我何时如此难受。还是想着,先补补c语言吧,然后32就不一个一个外设的学了,直接做项目,做着学

2.代码

1.直接配置寄存器

一个是直接配置寄存器的代码,翻了大半天资料,隐约会一点,一天搞出来3行代码,现在下边展示

#include "stm32f10x.h"                  


int main(void)
{
	RCC->APB2ENR = 0x00000010;
	GPIOC->CRH = 0x00300000;
	GPIOC->ODR = 0x00000000;
    

    while(1)
	{
	
	}
}

别看代码简单,但是具体的项目需要配置一大堆东西! 

stm32学习——点亮最小系统板上的LED_第1张图片

stm32学习——点亮最小系统板上的LED_第2张图片

我靠好恐怖,具体原理我也不说了,因为我现在也不会,先欠着吧,会了再说

2.调用库函数 

这种方式确实比直接用寄存器好理解,但是,配置的文件更多啊,我靠,而且,让一个新手搞那么多库函数,是不是有点过分了

#include "stm32f10x.h"    

int main(void)
{
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC,ENABLE );//配置外设时钟
	
	GPIO_InitTypeDef GPIO_Initstructure;//结构体
	
	GPIO_Initstructure.GPIO_Mode =GPIO_Mode_Out_PP ;
	
	GPIO_Initstructure.GPIO_Pin =GPIO_Pin_13;	
	
	GPIO_Initstructure.GPIO_Speed =GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOC,&GPIO_Initstructure);
	
	GPIO_SetBits(GPIOC,GPIO_Pin_13);//输入低电平系统板上的灯不亮
	GPIO_ResetBits( GPIOC,GPIO_Pin_13);//输入高电平,会亮,这俩二选一
	
	while(1)
	{
	
	}
}

那些函数,都要自己扒拉定义,是设定好的,直接调用即可 

3.复习工程建立

【1】建立工程文件 ,Keil中新建工程,选择型号

【2】工程建立的文件夹里添加start,library,user等名称分组,复制固件库里的文件到工程文件夹 

【3】工程里对应添加start,library,user等名称分组,然后将文件夹内的文件分别放在工程分组里

【4】工程选项,C/C++里,Include Paths里声明所有包含头文件的文件夹

【5】工程选项,C/C++里,Define内定义USE_ STDPERIPH_ DRIVER

【6】工程选项,Debug里,下拉列表选择对应调试器,Settings,Flash

Download里勾选Reset and Run(这个是自动下载,不然你还要自己按按键复位)

4.结语

   两天搞个这,是不是可笨,突然发现我的gitee昨天没有上传,难受,不过小小32是不会打到我的,下一步,先搞一下c语言,继续复习51,争取俩月内拿下32!

stm32学习——点亮最小系统板上的LED_第3张图片

你可能感兴趣的:(stm32,学习,嵌入式硬件)