在保存各种项目的文件夹内创建一个项目文件夹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的更多相关文章

  1. 第7章 使用寄存器点亮LED灯

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  2. 第7章 使用寄存器点亮LED灯—零死角玩转STM32-F429系列

    第7章     使用寄存器点亮LED灯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  3. STM32固件库模板下载以及固件库学习方法

    固件库模板下载 固件库模板新建过程: 下载我们上节的固件库文件 电脑新建一个文件夹命名为Fwlib-Template,在此文件夹下分别新建DOC Libraries Project User 这四个文 ...

  4. 第2章 如何安装KEIL5

    第2章     如何安装KEIL5 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fireg ...

  5. 第10章 新建工程-库函数版—零死角玩转STM32-F429系列

    第10章     新建工程—库函数版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...

  6. 第6章 新建工程-寄存器版—零死角玩转STM32-F429系列

    第6章     新建工程—寄存器版 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fireg ...

  7. 第2章-如何安装KEIL5—零死角玩转STM32-F429系列

    第2章     如何安装KEIL5 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章内 ...

  8. stm32新建工程详细步骤

    记得好早以前为了建一个keil的工程折腾了好久,在这里写写基本的Keil工程创建方法,以防自己以后再忘记: 新建工程 保存工程 选择器件 在这边新建文件夹,然后就是添加程序代码到里面去了.其中一些文件 ...

  9. Android学习起步 - 新建工程及相关

    新手起步迷迷糊糊,以下记录迷惑之处,大家共勉!!! 1.创建安卓应用工程 选择Andriod Application Project 点下一步直到完成. 二.下面是新建工程注意的地方 (1)首选删除系 ...

  10. keil 怎样新建工程,编写代码?

    打开keil uversion 4 新建工程 新建的工程名字,点击保存. 选择 cpu 单片机芯片 Atmel ----> AT89C51 不用将汇编代码加入工程,选择 “否” 新建文件,注意这 ...

随机推荐

  1. 外部文件使用django的models

    #外部文件使用django的models,需要配置django环境 import os if __name__ == '__main__': os.environ.setdefault("D ...

  2. Vue3学习笔记 —— 状态管理、Vuex、Pinia (未完结)

    优秀文章分享:vue中使用vuex(超详细) - 掘金 (juejin.cn) 一.状态管理 1.1.什么是状态管理? 理论上来说,每一个 Vue 组件实例都已经在"管理"它自己的 ...

  3. MangoDB相关文档阅读小结

    以往直到现在我所负责的业务场景没有使用MangoDB的,不过对于NoSQL的流行以及兴趣,阅读了一些文档做了简单的了解.待后续需要使用时再深入研究. 本文不介绍具体的语法. 基本信息 类似Json的B ...

  4. JS leetcode 寻找旋转排序数组中的最小值 题解分析,你不得不了解的二分法

    壹 ❀ 引 堕落了一天,那么接着来刷leetcode,今天做的一题不算复杂,题目来自leetcode153. 寻找旋转排序数组中的最小值,题目描述如下: 假设按照升序排序的数组在预先未知的某个点上进行 ...

  5. NC214362 第k小

    题目链接 题目 题目描述 有一个长度为n的数组,值为 a[i], 牛牛想找到数组中第 k 小的数.比如 1 2 2 3 4 6 中,第 3 小的数就是2. 牛牛觉得这个游戏太简单了,想加一点难度,现在 ...

  6. 轻松玩转Makefile | 企业项目级Makefile实例

    前言 本文展示了一个比较完整的企业项目级别的Makefile文件,包括了:文件调用,源文件.头文件.库文件指定,软件版本号.宏定义,编译时间,自动目录等内容. 1.目录架构 本文中所采用的目录架构,在 ...

  7. 【framework】WindowContainer简介

    1 前言 ​ WindowContainer 继承自 ConfigurationContainer,是 WMS 家族的重要基类.ConfigurationContainer简介 中,已介绍 Confi ...

  8. ubuntu16.04 ssh启用root连接

    安装好ubuntu16.04 server版默认是不允许客户端ssh工具连接root的. 启用方法如下: 1.设置root密码 dylan@ubuntu:~$ sudo passwd root [su ...

  9. Flutter学习(一)——创建一个项目

    本文基于 flutter 2.5.1,开发工具 Visual Studio Code. 一.创建 打开 VS Code 点击 View > Command Palette-(快捷键command ...

  10. 麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo

    前言   上一篇,通过研究,可以定位到函数,本篇进一步优化,没有行数,程序较为复杂的时候,就无法定位,所以进一步定位.  本篇做了qBreakpad的研究,但是没有成功,过程也还是填出来,后来突然注意 ...