目录
一、题目描述
以 STM32最小系统核心板(STM32F103C8T6)+面包板+3只红绿蓝LED 搭建电路,使用GPIOA、GPIOB、GPIOC这3个端口控制LED灯,轮流闪烁,间隔时长1秒。
1)写出程序设计思路,包括GPIOx端口的各寄存器地址和详细参数;
2)分别用汇编语言,C语言编程实现。
二、工程文件模板建立
对于我们初学者来说,自己建立工程模板很困难,我们可以选择网上现成的工程模板文件,这些文件都由其他大佬编写,他们将不同的文件以功能作为区分,放在了不同的文件夹下面,非常得清晰,一目了然。
这里我使用的工程模板是“洋桃电子”版本,下载网址:
http://www.doyoung.net/YT/xx3.html
注意: 我们下载好的工程模板一定要记得解压到我们对应的文件夹,如果直接在压缩状态打开的话系统只是创立了一个临时文件夹来打开该工程,但是对于我们要调用的文件,此文件夹中是没有的,所以直接编译会出错。
三、程序编写
1、熟悉工程模板
已经按照功能分好的文件夹
后面调用函数及其他功能的主函数
2、代码编写
2.1 首先在Hardware文件夹中选择添加文件
2.2 创建led.c
我们需要将管脚初始化成我们需要的样子,就要创建一个led.c文件用于存放我们的初始化代码。
led.c
#include "led.h"
void LED_Init(void){
//LED灯的接口初始化
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //初始化管脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置输出模式,推挽输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置输出速率
GPIO_Init