0
点赞
收藏
分享

微信扫一扫

STM32 | F103MINI开发板开发与学习之点灯


STM32 | F103MINI开发板开发与学习之点灯

时间:2023-03-11

文章目录

  • `STM32` | `F103MINI`开发板开发与学习之点灯
  • @[toc]
  • 1.资料
  • 2.安装`KEIL5`
  • 2-1.下载
  • 2-2.安装
  • 2-3.
  • 2-4.安装`STM32`芯片包
  • 3.使用寄存器点亮LED灯
  • 3-1.使用Keil建立工程
  • 3-1-1.新建项目目录
  • 3-1-2.新建工程
  • 3-1-2-1.选择`CPU`
  • 3-1-3.添加文件
  • 3-1-4.其他配置
  • 3-1-5.下载器配置(没有不配置)
  • 3-1-6.编译工程
  • 3-1-7.下载程序(串口)
  • 3-2.闪烁`LED`
  • 3-2-1.电路原理
  • 3-2-2.代码
  • 3-3.效果

STM32 | F103MINI开发板开发与学习之点灯_嵌入式硬件

STM32 | F103MINI开发板开发与学习之点灯_单片机_02

1.资料

1.F103MINI开发板资料

2.Embedfire-stm32f103-mini gitee代码仓库

3.【野火®】零死角玩转STM32—F103-MINI.pdf

4.野火STM32F103_MINI开发板资料下载

2.安装KEIL5

2-1.下载

链接:https://pan.baidu.com/s/15ZeM1wbuZc9uohPn12HIQA
提取码:kspq

2-2.安装

[lanfeiye@fly-vm Keil MDK-ARM 5.14]$ tree
.
├── Crack
│   ├── Keygen 1.exe
│   └── Keygen 2.exe
└── mdk514.exe

点击“mdk514.exe”进行安装;除了下面图中步骤需要注意,其他的直接点击下一步直到安装完成;

STM32 | F103MINI开发板开发与学习之点灯_单片机_03

STM32 | F103MINI开发板开发与学习之点灯_寄存器_04

2-3.

以管理员模式打开KEIL5软件;

Keil主题设置

STM32 | F103MINI开发板开发与学习之点灯_#define_05

STM32 | F103MINI开发板开发与学习之点灯_寄存器_06

2-4.安装STM32芯片包

keil的官网下载:http://www.keil.com/dd2/pack/

Keil.STM32F1xx_DFP.2.4.0.pack: https://keilpack.azureedge.net/pack/Keil.STM32F1xx_DFP.2.4.0.pack

链接:https://pan.baidu.com/s/1Rm2ANAnGRLSIgrG5hiKN7A 提取码:mj7j

STM32 | F103MINI开发板开发与学习之点灯_stm32_07

STM32 | F103MINI开发板开发与学习之点灯_寄存器_08

STM32 | F103MINI开发板开发与学习之点灯_单片机_09

3.使用寄存器点亮LED灯

资料(需要开发板的电路原理图及芯片数据手册):

1.F103-MINI 原理图.pdf

目录: D:\05_study\STM32\F103 Mini\A盘(资料盘)\6-STM32官方资料\1-STM32官方手册

  LastWriteTime         Length Name
  -------------         ------ ----
2010/11/14     10:04       14306739 1-STM32F10x-中文参考手册.pdf
2015/5/16     17:30       13016697 1-STM32F10x-英文参考手册.pdf
2016/7/21     16:01        2901411 2-STM32F103xCDE_数据手册-中文.pdf
2015/8/17     16:02        1731731 2-STM32F103xCDE_数据手册-英文.pdf
2015/8/3     10:21        6923614 CM3权威指南CnR2.pdf
2016/8/5     10:09        1400739 STM32F10xxx Cortex-M3编程手册-英文版.pdf
2011/6/7     14:26         475567 STM32F10xxx闪存编程参考手册.pdf
2016/3/21     14:44        2624839 STM32系统存储器启动模式.pdf
2016/3/16     11:03        2517456 STM8和STM32产品选型手册.pdf

3-1.使用Keil建立工程

3-1-1.新建项目目录

└─01-REG_LED
├─Listing
└─Output

3-1-2.新建工程

STM32 | F103MINI开发板开发与学习之点灯_stm32_10

3-1-2-1.选择CPU

STM32 | F103MINI开发板开发与学习之点灯_stm32_11

File       : D:\03_tools\DesTools\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.4.0\Keil.STM32F1xx_DFP.pdsc 
Sequence   : CheckID 
Context    : Item #1: <control if="jep106id != 0x20">
                 Item #0: <block>::Line 2 
Expression : "              Message(2, "Not a genuine ST Device! Abort connection.");" 
----------------------------^ 
E203       : Undefined identifier - function 'Message'

Keil升级ARM支持包后Loading PDSC Debug Description failed for XXX问题

3-1-3.添加文件

在目录:D:\03_tools\DesTools\Keil_v5\ARM\Pack\Keil下搜索“startup_stm32f10x_hd.s”;复制该文件到STM32\stm32-f103rct6-mini-prj\code\01-REG_LED目录下;

新建文件:stm32f10x.hmain.c,并添加到工程中。

STM32 | F103MINI开发板开发与学习之点灯_#define_12

STM32 | F103MINI开发板开发与学习之点灯_嵌入式硬件_13

3-1-4.其他配置

STM32 | F103MINI开发板开发与学习之点灯_#define_14

STM32 | F103MINI开发板开发与学习之点灯_stm32_15

STM32 | F103MINI开发板开发与学习之点灯_嵌入式硬件_16

3-1-5.下载器配置(没有不配置)
3-1-6.编译工程

STM32 | F103MINI开发板开发与学习之点灯_#define_17

Build target 'Target 1'
compiling main.c...
linking...
.\Output\LED-REG.axf: Warning: L6373W: libattrs.map file not found in System Library directory C:\Program Files (x86)\ARM\ADSv1_2\LIB\armlib\. Library selection may be impaired.
.\Output\LED-REG.axf: Warning: L6310W: Unable to find ARM libraries.
.\Output\LED-REG.axf: Error: L6411E: No compatible library exists with a definition of startup symbol __main.
Not enough information to list image symbols.
Not enough information to list the image map.
Finished: 2 information, 2 warning and 1 error messages.
".\Output\LED-REG.axf" - 1 Error(s), 2 Warning(s).
Target not created.
Build Time Elapsed:  00:00:00

Error: L6411E: No compatible library exists with a definition of startup symbol __main.解决办法

STM32 | F103MINI开发板开发与学习之点灯_嵌入式硬件_18

Build target 'Target 1'
linking...
.\Output\LED-REG.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o).
Not enough information to list image symbols.
Finished: 1 information, 0 warning and 1 error messages.
".\Output\LED-REG.axf" - 1 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed:  00:00:00

在mian.c文件中定义:

void SystemInit(void) { }

3-1-7.下载程序(串口)

STM32 | F103MINI开发板开发与学习之点灯_stm32_19

3-2.闪烁LED

3-2-1.电路原理

STM32 | F103MINI开发板开发与学习之点灯_#define_20

GPIO口的引脚设置为推挽输出并且默认下拉,输出低电平,点亮LED

STM32 | F103MINI开发板开发与学习之点灯_#define_21

3-2-2.代码

stm32f10x.h

#ifndef __STM32F10X_H__
#define __STM32F10X_H__

/* 片上外设基地址 */
#define PERIPH_BASE         ((unsigned int)0x40000000)
    
/* APB2 总线基地址 */
#define APB2PERIPH_BASE     (PERIPH_BASE + 0x10000)
/* AHB总线基地址 */
#define AHBPERIPH_BASE      (PERIPH_BASE + 0x20000)

/* GPIOC外设基地址 */
#define GPIOC_BASE          (APB2PERIPH_BASE + 0x1000)

/* GPIOC寄存器地址,强制转换成指针 */
#define GPIOC_CRL			*(unsigned int*)(GPIOC_BASE+0x00)
#define GPIOC_CRH			*(unsigned int*)(GPIOC_BASE+0x04)
#define GPIOC_IDR			*(unsigned int*)(GPIOC_BASE+0x08)
#define GPIOC_ODR			*(unsigned int*)(GPIOC_BASE+0x0C)
#define GPIOC_BSRR	        *(unsigned int*)(GPIOC_BASE+0x10)
#define GPIOC_BRR			*(unsigned int*)(GPIOC_BASE+0x14)
#define GPIOC_LCKR		    *(unsigned int*)(GPIOC_BASE+0x18)

/*RCC外设基地址*/
#define RCC_BASE            (AHBPERIPH_BASE + 0x1000)
/*RCC的AHB1时钟使能寄存器地址,强制转换成指针*/
#define RCC_APB2ENR		    *(unsigned int*)(RCC_BASE+0x18)
    
#endif /* __STM32F10X_H__ */

main.c

#include "stm32f10x.h"

void SystemInit(void)
{
}

void soft_delay(unsigned int count)
{
    for(;count != 0; count --);
}

int main(void)
{
    /* 配置RCC寄存器,使能GPIO口的时钟 */
	RCC_APB2ENR |= (1<<4);
	
	/* 配置CRL寄存器,配置为推挽输出 */
	GPIOC_CRL |= ( 1<<(4*2) );
    GPIOC_CRL |= ( 1<<(4*3) );
	
	/* 配套ODR寄存器 */
	GPIOC_ODR &= ~( 1<<2 );
    GPIOC_ODR &= ~( 1<<3 );
	
	while(1)
	{
		GPIOC_ODR &= ~( 1<<2 );
        GPIOC_ODR &= ~( 1<<3 );
		soft_delay(0xfffff);
		
		GPIOC_ODR |= ( 1<<2 );
        GPIOC_ODR |= ( 1<<3 );
		soft_delay(0xfffff);
	}
    
	return 0;
}

3-3.效果

STM32 | F103MINI开发板开发与学习之点灯_#define_22


举报

相关推荐

0 条评论