KEIL5新建工程0810

在保存各种项目的文件夹内创建一个项目文件夹1
新建工程到文件夹1

选择芯片
添加工程的必要文件(固件库)

STM32程序是从启动文件开始,复制这些文件到文件夹A的新建Start文件夹下

| stm32f10x.h | 外设寄存器描述文件(寄存器名称以及地址) |
| system_stm32f10x.c | 配置时钟 |
这三个文件也复制到Start文件夹下
STM32是内核和内核外围设备组成,而且这个内核的寄存器描述和外围设备的描述文件不是在一起的,所以还需要添加一个内核寄存器的描述文件

也也复制到Start文件夹下

暂时OK
把对应的文件添加到项目中, //具体芯片对应哪个启动文件可查看本文结尾

添加头文件路径到工程选项(魔术棒)
中

创建文件夹

此时在main文件中添加下面代码,使用寄存器开发
#include "stm32f10x.h"
int main(void)
{
while(1)
{ }
}
配置UTF8
配置调试器

测试代码
#include "stm32f10x.h"
int main(void)
{
RCC->APB2ENR=0x00000010 ; //打开GPIOC的时钟
GPIOC->CRH=0x00300000; //输出模式 推挽输出
//GPIOC->ODR=0x00000000; //全0 PC13的灯亮,0002000灭
GPIOC->ODR=0x0002000;
while(1)
{ }
}
添加库函数 misc杂项,为内核库函数,其他的为外设库函数


全部复制到新建的文件夹Library内
over

| stm32f10x_conf.h |
配置库函数头文件的包含关系,用来参数检查的函数定义,库函数都需要 |
| stm32f10x_it.c | interrupt 文件存放中断函数 |
三个文件复制到User文件夹下,同时添加到工程对应文件夹内
定义相关


基于库函数的工程OK

简单使用库函数
#include "stm32f10x.h"
int main(void)
{
//RCC->APB2ENR=0x00000010 ; //打开GPIOC的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
//GPIOC->CRH=0x00300000; //输出模式 推挽输出
GPIO_InitTypeDef A;
A.GPIO_Mode=GPIO_Mode_Out_PP ; //通用推挽输出
A.GPIO_Pin=GPIO_Pin_13;
A.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &A ); //13口的LED HEX=C
//GPIOC->ODR=0x00000000; //全0 PC13的灯亮,0002000灭
//GPIOC->ODR=0x0002000;
GPIO_SetBits(GPIOC,GPIO_Pin_13); //高电平
//GPIO_ResetBits(GPIOC,GPIO_Pin_13); //低电平 亮
while(1)
{ }
}
PS
启动文件对应芯片型号

项目整体结构分析 1 2主动执行 ,3 被动执行

汇编写的调用

KEIL5新建工程0810的更多相关文章
- 第7章 使用寄存器点亮LED灯
第7章 使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- 第7章 使用寄存器点亮LED灯—零死角玩转STM32-F429系列
第7章 使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...
- STM32固件库模板下载以及固件库学习方法
固件库模板下载 固件库模板新建过程: 下载我们上节的固件库文件 电脑新建一个文件夹命名为Fwlib-Template,在此文件夹下分别新建DOC Libraries Project User 这四个文 ...
- 第2章 如何安装KEIL5
第2章 如何安装KEIL5 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fireg ...
- 第10章 新建工程-库函数版—零死角玩转STM32-F429系列
第10章 新建工程—库函数版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...
- 第6章 新建工程-寄存器版—零死角玩转STM32-F429系列
第6章 新建工程—寄存器版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fireg ...
- 第2章-如何安装KEIL5—零死角玩转STM32-F429系列
第2章 如何安装KEIL5 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章内 ...
- stm32新建工程详细步骤
记得好早以前为了建一个keil的工程折腾了好久,在这里写写基本的Keil工程创建方法,以防自己以后再忘记: 新建工程 保存工程 选择器件 在这边新建文件夹,然后就是添加程序代码到里面去了.其中一些文件 ...
- Android学习起步 - 新建工程及相关
新手起步迷迷糊糊,以下记录迷惑之处,大家共勉!!! 1.创建安卓应用工程 选择Andriod Application Project 点下一步直到完成. 二.下面是新建工程注意的地方 (1)首选删除系 ...
- keil 怎样新建工程,编写代码?
打开keil uversion 4 新建工程 新建的工程名字,点击保存. 选择 cpu 单片机芯片 Atmel ----> AT89C51 不用将汇编代码加入工程,选择 “否” 新建文件,注意这 ...
随机推荐
- 外部文件使用django的models
#外部文件使用django的models,需要配置django环境 import os if __name__ == '__main__': os.environ.setdefault("D ...
- Vue3学习笔记 —— 状态管理、Vuex、Pinia (未完结)
优秀文章分享:vue中使用vuex(超详细) - 掘金 (juejin.cn) 一.状态管理 1.1.什么是状态管理? 理论上来说,每一个 Vue 组件实例都已经在"管理"它自己的 ...
- MangoDB相关文档阅读小结
以往直到现在我所负责的业务场景没有使用MangoDB的,不过对于NoSQL的流行以及兴趣,阅读了一些文档做了简单的了解.待后续需要使用时再深入研究. 本文不介绍具体的语法. 基本信息 类似Json的B ...
- JS leetcode 寻找旋转排序数组中的最小值 题解分析,你不得不了解的二分法
壹 ❀ 引 堕落了一天,那么接着来刷leetcode,今天做的一题不算复杂,题目来自leetcode153. 寻找旋转排序数组中的最小值,题目描述如下: 假设按照升序排序的数组在预先未知的某个点上进行 ...
- NC214362 第k小
题目链接 题目 题目描述 有一个长度为n的数组,值为 a[i], 牛牛想找到数组中第 k 小的数.比如 1 2 2 3 4 6 中,第 3 小的数就是2. 牛牛觉得这个游戏太简单了,想加一点难度,现在 ...
- 轻松玩转Makefile | 企业项目级Makefile实例
前言 本文展示了一个比较完整的企业项目级别的Makefile文件,包括了:文件调用,源文件.头文件.库文件指定,软件版本号.宏定义,编译时间,自动目录等内容. 1.目录架构 本文中所采用的目录架构,在 ...
- 【framework】WindowContainer简介
1 前言 WindowContainer 继承自 ConfigurationContainer,是 WMS 家族的重要基类.ConfigurationContainer简介 中,已介绍 Confi ...
- ubuntu16.04 ssh启用root连接
安装好ubuntu16.04 server版默认是不允许客户端ssh工具连接root的. 启用方法如下: 1.设置root密码 dylan@ubuntu:~$ sudo passwd root [su ...
- Flutter学习(一)——创建一个项目
本文基于 flutter 2.5.1,开发工具 Visual Studio Code. 一.创建 打开 VS Code 点击 View > Command Palette-(快捷键command ...
- 麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo
前言 上一篇,通过研究,可以定位到函数,本篇进一步优化,没有行数,程序较为复杂的时候,就无法定位,所以进一步定位. 本篇做了qBreakpad的研究,但是没有成功,过程也还是填出来,后来突然注意 ...