-
单片机按键消抖方式详解通常按键所用的开关都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动,如图所示:按键消抖状态图按键稳定闭合时间长短是由操作人员决定的,通常都会在100ms以上,刻意快速按的话能达到40-50ms左右,很难...[详细]
-
1引言超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而用于距离测量。利用超声波检测往往较迅速、方便、计算简单、易于实时控制,且测量精度能达到工业实用要求,因此在移动机器人的研制中得到广泛应用。移动机器人要在未知和不确定环境下运行,必须具备自动导航和避障功能。超声波传感器以其信息处理简单、速度快和价格低的特点广泛用作移动机器人的测距传感器,实现避障、定位、环境建模和导航等功能。...[详细]
-
引言物联网被称为继计算机、互联网与移动通信网之后的世界信息产业第三次浪潮。它代表了下一代信息发展技术,被世界各国当作应对国际金融危机、振兴经济的重点技术领域。物联网分为感知层、网络层、应用层,而无线网关节点则是实现感知层与网络层数据交互的桥梁,在物联网中具有特殊的地位。网关负责网络间的协议解析,不同网络类型的网络路由,网络数据的汇聚、存储、处理、转发等功能,成为物联网感知层与网络层不可...[详细]
-
刚接手STM32时,你只编写一个 intmain() { while(1); }BUILD://ProgramSize:Code=340RO-data=252RW-data=0ZI-data=1632编译后,就会发现这么个程序已用了1600多的RAM,要是在51单片机上,会心疼死了,这1600多的RAM跑哪儿去了,分析map,你会发现是堆和栈占用的在star...[详细]
-
目前感觉这样的文件结构安排最为合理。首先在选定文件夹下建立如下文件:然后根据芯片,将相关文件放入对应文件夹中,现在以STM32F103RCT6为例。将STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10x目录下的stm32f10x.h,system_stm32f10x.h,system_stm32f1...[详细]
-
虽然这个称做出来的样子不是便携式,外观有些简陋(自己用木头架子搭起来的),但是对于使用两节3.7V的18650的锂电池供电来说,还是需要设计一下低功耗的。称的使用频率不高,不能让触摸屏一直亮着,也不能让单片机一直处于工作状态,那样也太不节能、太不绿色了。一、STM32低功耗设计查阅stm32参考手册,可以看到低功耗有以下三种:我想要的效果是在称上没有放任何东西的时候,如果持续...[详细]
-
具体实现功能系统由STC89C52单片机+单体数码管+LED指示灯+LM298N芯片芯片+直流电机构成。具体功能:(1)模拟实现风扇的转动及摇头;(2)实现按键设置1档强风,2档中风,3档弱风,并用数码管显示;(3)实现按键控制摇头与停止摇头。设计背景本设计以直流电机控制为基础,基于传感器技术,以单片机控制技术为核心,实现电风扇的智能控制,同时设计采用轻触开关...[详细]
-
简介:如果在一个C程序文件中要使用一些变量但其原型定义写在另外的文件中,那么在本文件中必须将这些变量声明成“extern”外部类型。extern—外部变量声明如果在一个C程序文件中要使用一些变量但其原型定义写在另外的文件中,那么在本文件中必须将这些变量声明成“extern”外部类型。例如程序文件code1.c中有如下定义:bank1unsignedcharvar1,...[详细]
-
从箱底捞出来的f103,支持的c语言太基础,虽然性能很高,然而开发时间长难以快速的使用,一开始把c++那些该有的都搬进来,结果当然是觉得有的函数都没有了。小小的写了一个库用来通过串口来DEBUG一共有这几个函数,串口为PA9和PA10,在C8T6最小系统上面通过测试Serial_Begin()初始化USART,设定波特率Serial_WriteLine()传输数据并换行Seri...[详细]
-
首先我们需要了解一个内存映射:stm32的flash地址起始于0x08000000,结束地址是0x08000000加上芯片实际的flash大小,不同的芯片flash大小不同。RAM起始地址是0x20000000,结束地址是0x20000000加上芯片的RAM大小。不同的芯片RAM也不同。Flash中的内容一般用来存储代码和一些定义为const的数据,断电不丢失,RAM可以理解...[详细]
-
引言随着Flash技术在微处理器上的广泛应用,单片机在开发和应用手段上有了革命性的变化,从传统的仿真器(ICE)到目前流行的JTAG等。设计人员仍然在不断地寻找一种移植性更高、更易操作、费用更低的开发手段。随着微处理器制造工艺的提高,一些高端微处理器(如CPU12/16/32、PowerPC、ColdFire等)内部已经包含了用于调试的微代码,都可以通过BDM等进行调试。由于这种方法省去了...[详细]
-
引言 X1226具有时钟和日历的功能,时钟依赖时、分、秒寄存器来跟踪,日历依赖日期、星期、月和年寄存器来跟踪,日历可正确显示至2099年,并具有自动闰年修正功能。拥有强大的双报警功能,能够被设置到任何时钟/日历值上,精确度可到1秒。可用软件设置1Hz、4096Hz或32768Hz中任意一个频率输出。 X1226提供一个备份电源输入脚VBACK,允许器件用电池或大容量电容进行备份供电。...[详细]
-
简介最近用stm8s003k3开发项目,用到了ADC模块,记录一下笔记也分享一下心得软件环境:STVD+COSMIC硬件环境:STM8S003K3TSSOP20封装模块:ADC1.ADC功能以及框图由STM8S参考手册可以得到几个信息:1、有ADC1和ADC2两个(实际上得看封装,我这款只有ADC1)2、有多达16个输入通道(看封装,我这款只有2~6输入)3、有好几个...[详细]
-
/*-----------------------------------------头文件-----------------------------------------*/#includeiic.h/*-----------------------------------------宏定义-----------------------------------------*/...[详细]
-
摘要STM32红牛开发板上的5个LED,接在GPIOF6~10脚,输出低电平时,LED亮。这样我们设置GPIOF的相关寄存器,让其输出低电平就可以让LED亮。因为没有用到ST提供的固件库,所以是直接对寄存器的内存地址读写,即对一个指向该地址的指针变量进行读写。并且该变量必须为易变型的,即用volatile定义,这样是为了告诉编译器不要去优化这个变量,导致其它一些寄存器的数据变化。GPI...[详细]