赞
踩
学习单片机开发,最主要的就是动手写代码,操作调试,改代码。
话不多话,开我们的单片机奇妙之旅吧!!!
本教程使用是(光明谷SUN_STM32mini开发板)
首先了解LED硬件连接,查看原理图
得知PA8连接LED阴极,低电平点亮。
接下来开发写代码点亮他吧
打开keil软件,找到project,下拉菜单有一项new uvision project。点击这个项目,会出现一个项目路径。
自定义项目名称和保存位置。
选择需要烧代码的单片机芯片的生产公司(ST)相应的芯片型号STM32F103RCT6
点“OK”,新建好了工程。
添加STM32F10x库
新建源文件main.c 并添加到工程中
/**********************************************************************************
* Sun STM32 mini Demo
* Description
LED Flash
* Version Date Auther Reversed History
----------------------------------------------------------------------------
V1.0.0 2021-10-20 Lojam Fan Fisrt Created
* (C) Sunshine Silicon Corporation
* Website: http://www.sunsili.com http://sunsili.taobao.com http://bbs.sunsili.com
* E-Mail : fan@sunsili.com
**********************************************************************************/
#include "stm32f10x.h"
#include "Led.h"
void Delay(u32 dly);
/*******************************************************************************
* 函数名 : main
* 描述 : 主函数,用户程序从main函数开始运行
* 输入 : 无
* 输出 : 无
* 返回值 : int:返回值为一个16位整形数
* 说明 : 无
*******************************************************************************/
int main(void)
{
LED_GPIO_Config(); //LED IO配置
while (1)
{
LED_ON(); //点亮LED.PA8
Delay(1000000); //延时
LED_OFF(); //关闭LED.PA8
Delay(1000000); //延时
}
}
/*******************************************************************************
* 函数名 : Delay
* 描述 : 软件延时函数
* 输入 : dly:32位的整形数
* 输出 : 无
* 返回值 : 无
* 说明 : 无
*******************************************************************************/
void Delay(u32 dly)
{
for(; dly > 0; dly--);
}
/******************* (C) COPYRIGHT SUNSHINE SILICON **************************
******************** END OF FILE main.c *******************/
新源头文件led.c led.h 并添加到BSP(Group)
编辑led.c
/**********************************************************************************
* 文件名 :led.c
* 描述 :led 应用函数库 BSP
* 实验平台:Sun_STM32Min系统板
* 硬件连接:
* PA8 -> LED 板子有直接观察
* GPIO置低电平亮LED
* 库版本 :ST_v3.5
* Version Date Auther Reversed History
----------------------------------------------------------------------------
V1.0.0 2021-11-07 Lojam Fan Fisrt Created
* (C) Sunshine Silicon Corporation
* Website: http://www.sunsili.com http://sunsili.taobao.com http://bbs.sunsili.com
* E-Mail : fan@sunsili.com
**********************************************************************************/
#include "Led.h"
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure; //定义一个GPIO_InitTypeDef类型的GPIO初始化结构体
RCC_APB2PeriphClockCmd(LED_RCC, ENABLE); //使能GPIOB的外设时钟
GPIO_InitStructure.GPIO_Pin = LED_PIN ; //选择要初始化的LED引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置引脚工作模式为通用推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置引脚输出最大速率为50MHz
GPIO_Init(LED_PORT, &GPIO_InitStructure); //调用库函数中的GPIO初始化函数,初始化LED引脚
LED_OFF(); //关闭LED
}
/*点亮LED.PA8*/
void LED_ON(void)
{
GPIO_ResetBits(LED_PORT, LED_PIN );
}
/*关闭LED.PA8*/
void LED_OFF(void)
{
GPIO_SetBits(LED_PORT, LED_PIN );
}
/******************* (C) COPYRIGHT SUNSHINE SILICON **************************
******************** END OF FILE led.c *******************/
编辑led.h
/**********************************************************************************
* 文件名 :led.h
* 描述 :led 应用函数库 BSP
* 实验平台:Sun_STM32Min系统板
* 硬件连接:
* PA8 -> LED 板子有直接观察
* GPIO置低电平亮LED
* 库版本 :ST_v3.5
* Version Date Auther Reversed History
----------------------------------------------------------------------------
V1.0.0 2021-11-07 Lojam Fan Fisrt Created
* (C) Sunshine Silicon Corporation
* Website: http://www.sunsili.com http://sunsili.taobao.com http://bbs.sunsili.com
* E-Mail : fan@sunsili.com
**********************************************************************************/
#ifndef __LED_H__
#define __LED_H__
#include "stm32f10x.h"
//LED端口定义
#define LED_RCC RCC_APB2Periph_GPIOA
#define LED_PORT GPIOA
#define LED_PIN GPIO_Pin_8
void LED_GPIO_Config(void);
void LED_ON(void);
void LED_OFF(void);
#endif
/******************* (C) COPYRIGHT SUNSHINE SILICON **************************
******************** END OF FILE led.h *******************/
编辑好源代码后,保存全部,点"build", 稍等出现如下提示,编译成功,不成话,Keil会给提示,哪里不对,按提示修改代码,保存再编译,直到编译成功。
配置调试Debug(参考阅: keil5使用JLink仿真调试STM32F103C8T6)
我使用用是(ARM仿真器下载器JLINK V9)
ARM仿真器下载器JLINK V9 STM调试器 编程器 不掉固件工程设置(Option)
在开发板上运行(点Run或按F5)
课后作业:
改来闪灯频率,改到快到一定时,变成常高
增加闪灯数亮
变换闪灯效果,如流水、交换、慢增长、减少等
工程源码:
01STM32F103RCT6_LED.zip
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。