STM32F103RCT6开发板M3单片机教程01--点亮LED
本帖最后由 sunsili 于 2023-12-11 22:28 编辑STM32F103RCT6开发板M3单片机教程01--点亮LED
前言
学习单片机开发,最主要的就是动手写代码,操作调试,改代码。
话不多话,开我们的单片机奇妙之旅吧!!!
本教程使用是(光明谷SUN_STM32mini开发板)
原理图讲解
首先了解LED硬件连接,查看原理图
得知PA8连接LED阴极,低电平点亮。
程序设计
硬件准备:用短路帽短接J3
PA8 低电平时,可点亮LED2, 高电平则灭。
让LED亮1s,灭1s, 实现LED2频率为0.5Hz闪烁
接下来开发写代码点亮他吧
编写代码
[*]新建工程
打开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-20Lojam FanFisrt Created
* (C) Sunshine Silicon Corporation
*Website: http://www.sunsili.comhttp://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-07Lojam FanFisrt Created
* (C) Sunshine Silicon Corporation
*Website: http://www.sunsili.comhttp://sunsili.taobao.com http://bbs.sunsili.com
*E-Mail : fan@sunsili.com
**********************************************************************************/
#include "Led.h"
void LED_GPIO_Config(void)
{
GPIO_InitTypeDefGPIO_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-07Lojam FanFisrt Created
* (C) Sunshine Silicon Corporation
*Website: http://www.sunsili.comhttp://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)
添加烧录算法
8. 在开发板上调试
启动调试((点Debug或按ctrl+F5)
在开发板上运行(点Run或按F5)
课后作业:
[*]改来闪灯频率,改到快到一定时,变成常高
[*]增加闪灯数亮
[*]变换闪灯效果,如流水、交换、慢增长、减少等
工程源码:(回复可下载)
**** Hidden Message *****
STM32F103RCT6开发板购买(可用积分换取,免费的,真的不用钱) STM32F103RCT6开发板M3单片机核芯小系统板学习板 ...
回复haohaohaohaoahoa STM32F103RCT6单片机 谢谢分享! 666.拿走了,谢谢哈 mianfiehuoqu 好好好豪豪豪豪豪豪豪豪 不错,例程很有用的 123123213213123 BUCUOBUCUOBUCUOCBUCUIO
页:
[1]