STM32学习记录/代码部分-寒假第一周

以下是本次作业写的代码

代码1:LED.h

//机器人工程21-1***

#ifndef __LED_H
#define __LED_H


void LED_Init(void);    //定义函数


#endif

代码2:LED.c

//机器人工程21-1***

#include <LED.h>
#include <stm32f10x.h>

void LED_Init(void)
      //定义函数
{
	GPIO_InitTypeDef GPIO_InitStructure;     //针对GPIO进行定义
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //GPIOB时钟启用
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); //GPIOE时钟启用

	//也可以这样写:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE,ENABLE),同时启用B组和E组的时钟
	
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     //设置输出方式,为推挽输出
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;            //设置输出端口为Pin8
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //设置输出端口速度为50Mhz

	GPIO_Init(GPIOB,&GPIO_InitStructure);
                //让GPIO-B组实现以上代码
	GPIO_SetBits(GPIOB,GPIO_Pin_5);   //pin5输出高电平
	
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //同上
 
	GPIO_Init(GPIOE,&GPIO_InitStructure);                //让E组端口实现
	GPIO_SetBits(GPIOE,GPIO_Pin_5);   //pin5输出高电平
	
	

}

代码3:main.c

//机器人工程21-1***

#include <stm32f10x.h>
#include <LED.h>
#include <delay.h>

int main(void)
{
	LED_Init();     //调用函数
	delay_init();
	
	while(1)        //循环
	{
		GPIO_SetBits(GPIOB,GPIO_Pin_5);	//让GPIOB-5输出高电平
		GPIO_SetBits(GPIOE,GPIO_Pin_5);	//让GPIOE-5输出高电平
		
		delay_ms(500);			//延时500
		
		GPIO_ResetBits(GPIOB,GPIO_Pin_5);	//让GPIOB-5输出低电平
		GPIO_ResetBits(GPIOE,GPIO_Pin_5);	//让GPIOE-5输出高电平
		delay_ms(500);
	}
}

本周学习感想:

这是学习32的第一次作业,LED跑马灯,手写的第一次程序。
虽然是跟着视频教程写的,想要跟上似乎也有些困难,32的功能果然比51多不少,GPIO好几种输出方式,还可以直接调速
目前学习的库函数,似乎是在库中已有的函数里找出需要的函数并进行调用,应该是这个意思吧。
C语言的话水平还是在51时的水平,写函数循环判断调用基本没问题,不过怎么快速的找到对应的库函数似乎是个有难度的问题。