0%

stm32_note_08day

===========================
2022-8-24
===========================

一.温故知新

    其他的定时器主要讲的是看门狗
    1.通过最新选型手册了解->有两个看门狗外设资源->属于定时器外设
    2.看门狗使用的环境
    3.喂狗的操作
    4.独立看门狗和窗口看门狗的区别
    5.独立看门狗
    IWDG_KR(键寄存器)	<接收特定的值,执行特定的操作>
    0x5555	开启(IWDG_PR和IWDG_RLR寄存器)写访问(关闭写保护)
    0xCCCC	开启看门狗
    0xAAAA	喂狗的操作
    IWDG_PR(预分频值寄存器) <用来给时钟频率分频的>
    000 4分频		100 64分频
    001 8分频		101 128分频
    010 16分频	110 256分频
    011 32分频	111 245分频
    IWDG_RLR(重装载值寄存器) <用来保存计数值的>
    计数值范围[12个0 - 12个1]<0 - 4095>
    
    传感器
    市面上比较常见的传感器
    传感器的接口
    通过DHT11的手册分析DHT11传感器
    1.温湿度的传感器
    2.4管脚的封装形式
        1PIN	VCC
        2PIN	DATA
        3PIN	NC
        4PIN	GND
    3.测量范围 : 湿度20 - 90%  温度0 - 50℃
    4.误差范围 : 湿度±5%         温度±2℃
    5.分辨力1 : 只能采集到整数的数据,采集不了小数数据
    6.串行接口(单线双向)
        串行接口 : 以串行的方式传输数据,数据按照顺序一位一位发送
        单线双向 : 半双工的工作模式
    7.高位先出
    8.一次完整的数据需要40bit = 8bit湿度的整数数据 + 8bit湿度的小数数据
            + 8bit温度的整数数据 + 8bit温度的小数数据
            + 8bit校验和
    9.分析读写时序
    10.串行接口发送数据接收数据(高位先出、低位先出)

二.驱动DHT11

三.DS18B20

    专门用来检测温度的传感器
    打开<STM32RBT6\DataSheet\传感器>目录下<DS18B20.pdf>
    1.DS18B20是3管脚的封装形式(VCC DQ GND)
    2.DS18B20是一线传输的传感器(只有一条数据线<既需要输入也需要输出>)
    3.电压范围		3.0V - 5.5V
    4.测量范围		-55℃ - +125℃
    5.误差范围(在-10℃ - +85℃)会有±0.5℃的误差
    6.DS18B20既可以采集到整数数据也可以采集到小数数据
    7.DS18B20采集到的数据会存放在9bit - 12bit的存储空间中
    8.转换12bit的温度数据最多需要消耗750ms
    9.在DS18B20传感器内部有9个字节的暂存器
        第0个字节		温度的低字节数据
        第1个字节		温度的高字节数据
        第2个字节		温度的上限
        第3个字节		温度的下限
        第4个字节		配置
        第5 6 7字节	保留
        第8个字节		校验
    A.通过配置暂存器的第4个字节(配置)来选择采集温度数据所占位数
        0 R1 R0 1 1 1 1 1
        第0-4位		都是1
        通过R1 R0选择温度所占位数
        0 0		9bit
        0 1		10bit
        1 0		11bit
        1 1		12bit
        第7位		是0
    B.用来存储温度的暂存器
        温度的高字节的高5位是符号位(0代表正	1代表负)
        DS18B20的分辨力是0.0625℃
        DS18B20的暂存器存储的也是补码数据
        所以将来从DS18B20的暂存器中读出的数据是补码
    -0.5°C
    原码	11111000 00001000
    补码	11111111 11111000
    注意 : 读取数据有一个特殊值
    假如将来读到的数据是
        11111111 00000000
    补码	11111111 00000000
    原码	11111001 00000000
    因为高字节和低字节的数据都要+1
        低字节的+1 : 补码转换成原码时候的+1
        高字节的+1 : 是因为产生了进位所以要+1
    C.DS18B20内部支持很多的指令
    D.手册中给驱动工程师写了案例
    E.分析DS18B20的时序图

四.数码管

    1.显示类的设备
    LCD显示屏、OLED屏幕、段码屏(需要厂家定制)、点阵屏、光立方、数码管
    作用就是用来显示数据的
    其中数码管可以显示数字0 - 9包括一些简单的英文字母
    2.数码管
    常见的数码管有七段数码管或者八段数码管
    其中每一个段就相当于是一个LED灯
    八段数码管要比七段数码管多一个用于显示小数的小数点
    3.共阴极数码管和共阳极数码管
    共阴极数码管 : 数码管中所有数据段的阴极都连接到了一起,接地
            给数据段的阳极输出高电平,可以点亮数码管
    共阳极数码管 : 数码管中所有数据段的阳极都连接到了一起,接电源
            给数据段的阴极输出低电平,可以点亮数码管
    各自的编码 : 
    共阳极数码管的编码
    uchar code table[]={0xc0,0xf9,0xa4,0xb0,//0 1 2 3
            0x99,0x92,0x82,0xf8,//4 5 6 7
            0x80,0x90,0x88,0x83,//8 9 A B
            0xc6,0xa1,0x86,0x8e};//C D E F
    共阴极数码管的编码:
    uchar code table[]={0x3f,0x06,0x5b,0x4f,//0 1 2 3
            0x66,0x6d,0x7d,0x07,//4 5 6 7
            0x7f,0x6f,0x77,0x7c,//8 9 A B
            0x39,0x5e,0x79,0x71};//C D E F
    4.四位共阴极数码管
    我们的开发板上连接的是四位共阴极的数码管
    产生的问题
    如果四位数码管的所有数据段都连接到芯片的管脚上就会占用32个管脚
    这样对于芯片的管脚太浪费了
    ------------------------------------------------------------------------
    为了解决芯片管脚浪费的问题
    把四位数码管的所有的A段都连接到了一起
    把四位数码管的所有的B段都连接到了一起
    ...
    把四位数码管的所有的DP段都连接到了一起
    这样处理只会消耗芯片的8个管脚
    产生的问题
    给8个数据段写入编码,四个数码管会显示相同的数据
    ------------------------------------------------------------------------
    四位数码管的公共端接到芯片的管脚上
    将来想要让某个数码管显示数据,就让该数码管的公共端有效,
    其他数码管的公共端无效即可
    产生的问题
    四位数码管不能同时显示数据(只能一个一个显示)
    ------------------------------------------------------------------------
    可以利用人类眼睛的视觉暂留处理

=============================
作业
1.把今天讲过的内容完完整整的复习一遍
=============================