day02 LED

一、回顾

1、C
    int char short...
    typedef 起别名

    指针

    函数 void fun_T(int x,int y);

    结构体

2、嵌入式——以应用为中心
    物联网的框架:感知层、网络层、平台层、应用层

3、搭建开发环境 fwlib(frimware library)
    VMware Workstation

4、开发板STM32F103RBT6

二、芯片详细介绍 

ST    ARM    STM
    三星    ARM    开发板+外设
    联想    Intel x86_x64
    
    FLASH——放烧录好的代码(修改数据,重启生效)
    BOIS——basic Input Output System 系统软件,引导操作系统(本身也是操作系统)
        集成、驱动所有的外设
    Windows 70% C + 汇编
    Linux 99.99% C + 汇编
    (C执行效率高、汇编、机器码)

    《手册》
    1、STM32是64管脚封装
    2、主频 72Hz
    3、-40-105℃
    4、flash 128Hz

    《STM32F103RB》
    1、和CPU连接的各种总线:
        数据总线、地址总线、控制总线
    2、什么是总线:(图:计算机体系结构)
!!!!区分冯诺依曼体系结构和哈佛体系结构:
    看取指令和取数据是否用同一根总线
    3、在STM32中有几个总线,分别是哪些?
        AHB(AHB1、AHB2)都是三总线,高速总线
        APB1、APB2 都是三总线,外设总线
    要想操作GPIO外设需要通过哪个总线去操作?APB2
    4、Stm32中GPIO资源非常丰富,一共有GPIO管脚(A-E,5*16=80)
        一个管脚最多有四个功能:
        输入:上拉(默认情况下高电平)、下拉(默认低电平)、浮空(默认情况下不确定)
        输出:开漏(管脚只能输出低电平)、推挽(既可低也可高)
        复用:开漏、推挽
        模拟(模数转换):模拟输入功能

三、编译原理   

编译过程:
    hello.c——源程序
    |(预处理gcc -E hello.c -o)
    hello.i——预处理后的文件
    |(编译gcc -S hello.i -o hello.s)
    hello.s——汇编文件
    |(汇编gcc -c hello.s -o hello.o)
    hello.o——目标文件
    |(链接gcc hello.o)
    a.out——可执行文件(绿色)

    预处理:根据预处理指令,过滤掉程序中的注释,把相关的头文件包含进来
        预处理指令是给预处理器下发执行的指令 gcc -E hello.c -o hello.i
    编译:将预处理后的文件编为汇编文件
        gcc -S hello.i -o hello.s
    汇编:将hello.s汇编成目标文件
        gcc -c hello.s -o hello.o
    链接:将目标文件和库文件,运行时文件链接成可执行文件。
        gcc hello.o

四、GPIO的输入输出功能  

    a.h
    int add(int x,int y);
    
    a.c
    #include"a.h"
    int add(int x,int y){
        return x+y;
    }

    b.c
    #include "a.h"
    int var = 0;
    int tmp = 10,tmp1 = 20;
    var = add(tmp,tmp1);
    
    extern 关键字扩充变量或者函数的作用域

    输入 相当于 检测
    输出 相当于 控制
    
    1、LED0,1,2各连接到哪个管脚 PC1,2,3
    2、如果想要让LED灯亮,对应的管脚应该输出高or低电平?高
    3、通过APB2总线打开时钟使能
    4、初始化CPIO
        选择推挽输出
        选择 C组 1,2,3
        输出频率:50MHz

作业:

1.根据LED驱动程序完成流水灯
2.拷贝02led——03beep,完成蜂鸣器的驱动

你可能感兴趣的:(STM32F103RBT6,单片机,stm32)