STM32F103系列学习笔记----第一个keil工程

这是STM32F103学习笔记,从画PCB到软件调试,再到一个网站的keil工程,最后是一些RTOS系统移植,我希望自己能从头开始直到最后一步,如何再继续深入。

前提:自己在立创EDA上画了一个STM32最小系统板,并且免费打样,出了五片pcb,资金有限,在网上购买了五块版的物料,手动焊接完成一块,目前程序能够烧录、正常正常运行。但是网口和外部flash还有点问题待处理,由于我对硬件知识了解的不够升入,所以跳过这两个外设,直接进入软件调试部分,后续有时间再研究这两个问题。

下面我将介绍KEIL工程的从有到无:

一、前期准备:

1、最小系统板(我的芯片是STM32F103VET6)。

2、keil5软件。

3、ST官方提供的lib库

我们直接去ST的官方去下载对应芯片的相关库(ST官网)。
1、选择微控制器与微处理器。
2、选择STM32主流MCU。
3、选择STM32F1系列。
4、选择STM32F103。
5、点击STM32F103的工具与软件。
6、进入如下目录:所有工具与软件类型-》Embedded Software-》MCU 及 MPU嵌入式软件-》STM32 Standard Peripheral Libraries:在这里插入图片描述
7、下载固件包即可(我选的是3.5.0版本):在这里插入图片描述
下载解压后的文件包括如下:(我们要使用的就是Libraries目录下的文件:包括stm32f10x.h头文件、启动文件xxx.s、以及core_cm3文件、以及GPIO、UART、CAN、I2C等各种驱动文件,都是我们需要的)
在这里插入图片描述

二、创建keil工程,导入ST的库文件

1、新建keil工程,芯片选择STM32F103.

在这里插入图片描述
创建成功之后,keil为空工程:
在这里插入图片描述
接下来导入下载下来的文件我的文件格式:导入.c文件、所有头文件引用目录,以及打开宏定义:USE_STDPERIPH_DRIVER
在这里插入图片描述
在这里插入图片描述
此时创建一个main.c,自行编写main函数,整个工程即可编译。

编译可能遇到的错误:

1、.\Objects\rtthread_zt.axf: Error: L6218E: Undefined symbol assert_param (referred from misc.o).
没有定义asssert_param函数。
添加宏定义:USE_STDPERIPH_DRIVER 即可。
2、 error: #5: cannot open source input file “stm32f10x_conf.h”: No such file or directory
发现下载的库中没有此头文件,所以我们去网上找到此文件加入到工程中即可。
3、再次编译后,你会发现,他又提示stm32f10x_conf.h文件中引用的stm32f10x_type.h文件没有,这时我直接将stm32f10x_conf.h文件中的#include "stm32f10x_type.h"注释掉(不知道会不会有什么隐患,后面需要注意)。即可编译通过。

三、点亮LED

修改main函数,我的工作LED引脚为PD15,代码如下。

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"

void led_pin_init(void)
{
    GPIO_InitTypeDef LED_GPIO_InitStruct;
    
    LED_GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;
    LED_GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
    LED_GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init(GPIOD, &LED_GPIO_InitStruct);
}

int main(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

    led_pin_init();

    while(1) {
        int i = 1000000;
        GPIO_ResetBits(GPIOD, GPIO_Pin_15);
        while(i--);
        GPIO_SetBits(GPIOD, GPIO_Pin_15);
        i = 1000000;
        while(i--);
    }
}

编译下载之后,程序正常运行,LED正常闪烁。至此,第一个KEIL工程就大功告成了!!!
最后:由于经验不足,如有错误的地方,感谢指正。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值