Keil新建工程(江协科技)

1、开发STM32的方式

寄存器方式,标准库函数方式、HAL库开发方式(适合快速上手)

2、建立基于标准库函数的工程

① 创建工程文件夹 ;

② Project -> New μVision Project ->选择上面工程文件夹 ->新建本次工程文件夹,起名STM32工程模板 -> 给工程文件起名Project

③ 选择器件型号STM32F103C8T6

④ 新建Start目录,添加工程必要文件至Start目录,并在Keil中新建Start组,添加Start目录中的文件

启动文件 (startup_xxx_.s)

外设寄存器头文件(stm32f10x.h) 

配置时钟文件(system_stm32f10x.c + system_stm32f10x.h)

内核寄存器头文件(core_cm3.c+core_cm3.h)

添加头文件路径:魔术棒--->C/C++--->Include Paths 选择Start文件夹

⑥ 创建User文件夹,Keil添加User组,  添加main.c文件,编写简单函数编译测试一下

⑦ 连接STM32和STLINK

⑧ 魔术棒--->Debug--->Settings--->ST-Link Debugger FlashDown--->Reset and Run

1、基于寄存器点灯

#include "stm32f10x.h" // Device header
int main(void)
{
RCC->APB2ENR = 0x00000010; //APB2ENR寄存器的IOPCEN位被置1,使能GPIOC的时钟
GPIOC->CRH = 0x00300000; // 端口配置高寄存器GPIOC->CRH,CNF和MODE配置为00和11
GPIOC->ODR = 0x00002000; // 端口输出数据寄存器GPIOC->ODR,ODR13写1高电平,写1低电平
while(1)
{
}
}

 

2、标准库函数点灯

(1) 新建Library文件夹存放内核和外设的标准库函数文件,Keil中添加组Library,添加文件

(2) User文件夹添加stm32f10x_conf.h文件,用于配置库函数头文件的包含关系

main.c中包含stm32f10x.h, stm32f10x.h文件包含stm32f10x_conf.h, stm32f10x_conf.h文件包含外设库函数头文件

#ifdef USE_STDPERIPH_DRIVER
#include "stm32f10x_conf.h"
#endif

(3) User文件夹添加stm32f10x_it.c、stm32f10x_it.h文件,用于存放中断函数

(4) 魔术棒--->C/C++--->Define中粘贴 USE_STDPERIPH_DRIVER

(5) 添加头文件路径:魔术棒--->C/C++--->Include Paths 选择User,Library文件夹

#include "stm32f10x.h" // Device header
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); // 配置GPIOC的外设时钟
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 引脚:模式通用推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; // 要初始化的引脚:13号引脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 输出速度
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_SetBits(GPIOC, GPIO_Pin_13);
GPIO_ResetBits(GPIOC, GPIO_Pin_13);
while(1)
{
}
}

 

工程架构:

1、Start文件夹 中存放 启动文件内核寄存器描述文件外设寄存器描述文件系统配置文件 

2、System文件夹 中存放 延时函数文件等

3、Library文件夹 中存放 标准库函数文件

4、Hardware文件夹 中存放  用户外设功能文件

5、User文件夹 中存放 main函数文件配置头文件(管理外设的头文件包含关系)、中断函数文件

 

posted @   轩~邈  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示