day03 timer

一、回忆  

    计算机体系结构
    总线的概念
    数据总线    地址总线    控制总线
    如:0x12345678上放0x100

    AHB    AHB1    AHB2
    APB1    APB2
    
    编译原理
    hello.c
    |预处理(预处理器)
    hello.i
    |编译
    hello.s
    |汇编
    hello.o
    |链接
    a.out(ELF)

    GPIO
    输入(检测)
    输出(控制)

    1.找到三个按键对应的管脚接到MCU上的位置
        KEY0 ----> PC9
        KEY1 ----> PC8
        KEY2 ----> PA0
    2.KEY0,KEY1在默认情况下呈现什么电平    高
        按下之后呈现低电平
    3.KEY2 按键按下之后管脚呈现什么电平    高
        默认低电平

CPU感知外部信息三种方式:轮询、DMA(直接内存存储)、中断

任务:
    1.KEY0控制LED0
    2.KEY1控制LED1
    3.KEY2控制LED2
    当KEY0按下抬起之后,LED0常亮;
    再次按下抬起之后,LED0熄灭

    int    4byte    32bit    0~2^32-1

三、定时器   

volatile    易变
    volatile int i = 0;
    for(i=0; i<1000000; i++){
        var++;
    }
    拿volatile关键字修饰的变量,是告诉编译器,
    在取变量值的时候,每次都去内存中取,不要到缓存中取。

    粗略的延时——while,for...
    精确的延时——定时器

    在STM32中有很多定时器资源,分为普通定时器、特殊定时器(WDG,RTC)
    看门狗除了定时的功能之外,还提供重启复位的功能
    到达定时时间之后,自动重启
    0xffffffff - 1    喂狗    0x20000000
    看门狗应用的场景:工业领域

    RTC:提供计时功能——年 月 日 时 分 秒
    无论是普通定时器还是特殊定时器,决定定时时间(超时)大小,有哪些因素?
        1.频率frequency    f = 1/t    72MHz
        2.计数值 

计数    10    10    72M    72000    72
频率    10    72M    72M    72M    72M
定时时间1s    10/72Ms    1s    1ms    1us    

四、系统定时器

系统定时器并不是由ST提供的,而是由ARM-CORTEX_M3提供的
    系统定时器(system timer|systick)
    如果想要了解系统定时器定时时间的长短,需要从哪两个角度分析
        频率    计数值

    1.有几种时钟源?5种:HSI、HSE、LSI、LSE、PLL倍频器(乘法器)
    2.系统时钟是由谁提供的?
        HSE,因为内部的时钟源往往不太稳定,所以选择HSE

    通过时钟树分析系统定时器的时钟频率 SYSCLK/8(9MHz)或 SYSCLK(72MHz)

    3.查找定时器的计数范围
    《权威指南》P189
    其中有4个寄存器:校准寄存器、当前值寄存器、重装载值寄存器、控制及状态寄存器
    灰色区域表示透明(不可见)
    计数范围:0 ~ 2^24-1(16M)

    USB hub(集线器)    
        root hub(根集线器) <----- USB Bus —— !!!轮询60ms
        usb2.0/usb3.0  建立链接connect    <----- Usb Device
        EHCI/XHCI —— !!!中断                        
        End point()    <----- 发命令    <----- Mass Storage(海量存储)—— !!!DMA

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