STM32 | F103MINI开发板开发与学习之点灯
创始人
2024-06-02 08:44:29
0

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.效果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FrRGo49W-1678608341582)(null#id3)]


F103-RCT6-IO

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”进行安装;除了下面图中步骤需要注意,其他的直接点击下一步直到安装完成;

keil-01


keil-02


2-3.破解

keil5最新版安装与破解:http://t.zoukankan.com/yelang-lkg-p-9679511.html;以管理员模式打开KEIL5软件;

Keil主题设置:https://blog.csdn.net/Ltter1/article/details/116161920


keil-03


keil-04


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

keil-05


keil-07


keil-08


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.新建工程

F103-RCT6-LED-REG

3-1-2-1.选择CPU

F103-RCT6-CPU

File       : D:\03_tools\DesTools\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.4.0\Keil.STM32F1xx_DFP.pdsc 
Sequence   : CheckID 
Context    : Item #1: Item #0: ::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,并添加到工程中。

F103-RCT6-01


F103-RCT6-02

3-1-4.其他配置

F103-RCT6-03


F103-RCT6-04


F103-RCT6-CPU

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

F103-RCT6-07

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.解决办法

F103-RCT6-06

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.下载程序(串口)

F103-RCT6-08

3-2.闪烁LED

3-2-1.电路原理

stm32f103-led

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

stm32f103-01


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.效果

stm32f103-02

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...