2019年9月17日星期二(STM32 串口 看门狗)
一.串口蓝牙
1.无线通信方式
zigbee,wifi,红外,RFID,蓝牙....
串口蓝牙为例,我们购买串口蓝牙模块后,只需要将蓝牙模块连接到芯片的串口接口上
然后按照蓝牙模块要求的数据形式通过串口来和蓝牙模块进行数据交互,蓝牙模块就会按照你的设置去将数据通过蓝牙和外部的其他蓝牙设备进行通信
通过串口蓝牙模块,蓝牙通信的传输就变成了串口数据的传输
2.蓝牙模块和开发板连接
3.蓝牙的说明手册
(1)特性
(2)配置方法
蓝牙模块的默认波特率是9600bps
配置蓝牙模块使用AT指令集,蓝牙模块只有在未连接时候才接收AT指令
所有的AT指令以"\r\n"结束
(3)AT指令集
当蓝牙模块和其他蓝牙设备连接以后,蓝牙模块进入透传模式,不再接收任何AT指令
蓝牙模块收到的数据会通过串口发送出来,发送到串口上的数据会通过蓝牙发送出去
4.两个蓝牙模块之间通信
(1)设置其中一个蓝牙模块为主模式
发送AT指令: AT+ROLE1
模块返回: OK
(2)主模式的蓝牙模块可以去搜索其他蓝牙设备
发送AT指令: AT+INQ
模块返回:
(3)连接指定序号的模块
发送AT指令: AT+CONN0 ------------ 连接编号为0的模块
模块返回:
(4)建立连接后进入透传模式,两个蓝牙模块就可以进行通信
二.看门狗
1.背景
在单片机构成的嵌入式系统中,由于所处工作环境不确定,有可能收到外界电磁场/极端温湿度的干扰。造成处理器内部各种寄存器/内存数据混乱,
导致单片机程序执行出错,让程序跑飞或者进入死循环。嵌入式系统无法正常工作,整个系统陷入停滞状态,造成不可预料的后果。
看门狗就是用来就绝上述问题。看门狗本质上是一个定时器,能够定期查看芯片的工作情况,一旦发生错误就向芯片发送重启的信号(复位),
让系统通过重启恢复正常
看门狗是一个定时器电路,一般有一个输入信号,叫做喂狗,作用是重置定时器计数值,有一个输出的复位信号,当定时器超时时发送复位信号
当单片机正常工作时,需要在看门狗超时时间内定期喂狗,防止看门狗定时器超时,不让看门狗产生复位信号
一旦单片机程序异常(死循环/跑飞),看门狗就收不到喂狗信号,超时后就发送复位信号导致系统重启
2.stm32的看门狗
stm32407内部有独立看门狗,时钟是单独的RC震荡时钟,不由系统时钟提供,当系统时钟异常仍然可以工作
3.独立看门狗的编程步骤
(1)关闭寄存器的写保护
IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
(2)设置看门狗的预分频值和初始计数值
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler)
void IWDG_SetReload(uint16_t Reload)
(3)将初始计数值放入计数器(喂狗)
IWDG_ReloadCounter();
(4)启动看门狗
IWDG_Enable();
(5)在看门狗周期内需要定期喂狗
IWDG_ReloadCounter();
4.窗口看门狗
窗口看门狗用于控制程序在指定的时间段来进行某个操作。本质上也是一个定时器,
普通看门狗可以在超时时间内任意一个时间点喂狗,窗口看门狗只能在指定的时间内喂狗
烟雾传感器
传感器可以检测可燃气体,四个脚(电源(5V) 地 电平输出口(DO) 模拟输出口(AO))
DO口默认高电平,当浓度超过限定值,变为低电平(滑动变阻器调节灵敏度),报警LED亮
AO口输出模拟电压值,电压值随着浓度变化而变化