===========================
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.把今天讲过的内容完完整整的复习一遍
=============================