推荐阅读最新更新时间:2024-03-16 14:55
STM32延时消除抖动个人理解
今天在一段中断服务子程序中发现这么一句话。 delay_ms(10);//消抖 于是很好奇什么是抖动,以及为什么要消除抖动,还有抖动该怎么消除。 1.先讲一下什么是抖动: 通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动。这是我画的丑图,按键一按下时会产生一连串的抖动: 2.为什么要消除抖动: 按键稳定闭合时间长短是由操作人员决定的,通常都会在100ms以上,刻意快速按的话能达到40-50ms左右,很难再低了。抖动时间是由按键的机械特性决定的,一般都会在10
[单片机]
STM32原子哥的故事
提到广州星翼电子,STM32圈中的人可能会觉得陌生,但是提到正点原子和《原子教你玩stm32》,所有接触过STM32或者Arm MCU的爱好者几乎都知道。近日广州星翼电子技术总监原子哥作为意法半导体战略合作伙伴,和意法半导体中国区微控制器事业部市场及应用总监曹锦东共同接受了媒体采访。 正点原子的故事就此展开。 正点原子的介绍 原子哥本名刘军,是正点原子(广州星翼电子)的技术总监。 从公司简介中我们可以看到,广州市星翼电子是一家从事嵌入式开发平台、IOT物联网、四轴飞行器、仪器仪表和企业服务等软硬件研发、销售一体化的国家高新技术企业。公司成立于2012年,是国内知名度极高的嵌入式开发平台供应商,产品远销东南亚欧美各国,国内数百家
[单片机]
STM32 Bootloader与启动分析
一、STM32 程序下载与Bootloader 三种启动模式如下表: (截图与stm32中文参考资料) 1、从主闪存存储器启动,即从STM32内置的Flash启动,BOOT0=0,BOOT1=X, 一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,复位(软件复位、手动复位、硬件自动复位)后也直接从这启动程序。不需要使用到系统存储区的Bootloader程序。 2、从系统存储器启动,即STM32的ISP了。B00T0=1,B00T1=0,由于串口不能直接把程序下载到内置的flash里面,所以需要使用到ST公司内嵌于系统存储区(flash的某一部分的地址被编为0x1FFF_F000-0x1FFF_F7FF,这就
[单片机]
STM32的八种GPIO模式
STM32有八种IO口模式,分别是:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。 1、模拟输入 GPIO_Mode_AIN模拟输入,即关闭施密特触发器,将电压信号传送到片上外设模块(不接上下拉电阻)。 2、浮空输入 GPIO_Mode_IN_FLOATING浮空输入。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。 3、上下拉输入 GPIO_Mode_IPD下拉输入,GPIO_Mode_IPU上拉输入。一般来讲,上拉电阻为1K-10K,电阻越小,驱动能力越强。 电阻的作用:防止输入端悬空,减少外部
[单片机]
【STM32】HAL库-电源控制(低功耗模式)
电源框图 ADC单独供电 为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。 ADC的电源引脚为VDDA 独立的电源地VSSA 电池备份区域 当VDD断电时,可以保存备份寄存器的内容和维持RTC的功能。 VBAT为RTC、LSE(低速外部时钟)振荡器、备份寄存器和PC13至PC15供电。 当备份区域由VDD(内部模拟开关连到VDD)供电时,下述功能可用: PC14和PC15可以用于GPIO或LSE引脚 PC13可以作为通用I/O口、TAMPER引脚、RTC校准时钟、RTC闹钟或秒输出 当后备区域由VBAT供电时(VDD消失后模拟开关连到VBAT),可以使用下述功能:
[单片机]
毕业设计| 不超过100元的简易防疲劳驾驶检测
以下就简单的介绍下项目组成: 实现的功能 面板上共四个按键,对应不同的功能: 按键1:按下后,将一分钟内的平均脉搏设为正常脉搏,正常脉博值更新后蜂鸣器隔一秒响一次,正常脉博值未更新时蜂鸣器一秒响4次。这样能知道当前什么状态,报警状态就是一直响。如果已经按下过按键1 ,那再按一次就会蜂鸣器快响,并计算平均值,计算完蜂鸣器再慢响,相当于更新了一次平均值。 按键2:实时检测xyz轴加速度,并且设置对应的三个报警值,超过报警值蜂鸣器报警,需要按按键4手动取消报警,报警值设置程序中采用宏定义的方式,方便用户更改调试,每次更改后需重新下载程序。再按一次按键2加虚度检测停止工作。按键2 相当于只检测加速度。 按键3:脉搏报警值和
[单片机]
STM32驱动MAX6675读取K型热电偶温度
MAX6675 进行热电偶冷端补偿和数字化 K 型热电偶信号。输出 12 位分辨率、 SPI 兼容、只读的数据。转换器的精度为 0.25℃,最高可读+1024℃,如果使用数据的 8LSB 则温度范围为 0℃到+700℃。 MAX6675模块的原理图: 从网上看到max6675模块并不便宜,正好手头又有MAX6675的芯片于是自己便根据原理图在洞洞板上搭建了一个测试模块 测试结果:将测得的温度信息通过串口1输出到上位机显示 max6675模块部分的测试代码: #include stm32f10x.h #include usart.h #include delay.h #include max6675.h
[单片机]
RyanMqtt移植指南
测试环境:stm32F401RCT6、RT-Thread版本: v4.1.0、RT-Thread Studio版本: 2.2.6、网络硬件使用ec800m移植at_socket使用sal框架。 1、移植介绍 RyanMqtt 库希望应用程序为以下接口提供实现: system 接口 RyanMqtt 需要 RTOS 支持,必须实现如下接口才可以保证 mqtt 客户端的正常运行 network 接口 RyanMqtt 依赖于底层传输接口 API,必须实现该接口 API 才能在网络上发送和接收数据包 MQTT 协议要求基础传输层能够提供有序的、可靠的、双向传输(从客户端到服务端 和从服务端到客户端)的字节流 time 接口
[单片机]