以下是本次作业写的代码
代码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时的水平,写函数循环判断调用基本没问题,不过怎么快速的找到对应的库函数似乎是个有难度的问题。