1949啦网--小小 痛苦,是因为能力和欲望不匹配造成的

LIS2DH12之fifo的使用记录

    项目中使用到LIS2DH12加速度传感器,由于需要高的采样率并且传输采集到的数据,故得运用FIFO,但是在使用FIFO的时候,发现采集数据量不对,比如400HZ的采样率是1S采集到400组XYZ,但是在使用的时候发现1S并没有采集到这么多,经过和同事的研究,发现应该是此芯片的采样率的误差导致的.
作者:xiao 分类:硬件笔记 浏览:

stm32----UART

作者:xiao 分类:硬件笔记 浏览:

学习UCOS之信号量

1.

信号量常用于任务的同步,通过该信号,就能够控制某个任务的执行,这个信号具有计数值,因此,可以称为计数信号量。
作者:xiao 分类:硬件笔记 浏览:

学习记录------UCOS

任务就相当于Linux中的线程任务控制块就相当于线程ID上图就是线程的几个状态,下图是两个线程的运行过程:任务的删除专门用于初始化硬件,一般来说,硬件只做一次初始化,完毕后可将该任务删除,该任务的删除是不会释放资源,只是通过任务列表去掉而已ucos没有Linux这么强大,任务的栈空间是在编译阶段已经分配好了。任务有效空间使用占百分之90.留百分之10给任务检测等。6.这两张照片调不了方向就这样吧。记录了临界区和任务的几个状态,还有共享资源。
作者:xiao 分类:硬件笔记 浏览:

LCD知识点

百度百科

作者:xiao 分类:硬件笔记 浏览:

I2C

    很久没有使用网站进行记录笔记了。前段时间更喜欢于手写记录。现在有点想念。进入I2C。  1.  I2C总线就等同于一个小型的局域网,通信的过程可当做是一个TCP通信。   2 .理解I2c通信的起始信号,应答信号。停止信号。    起始信号:通知从机做好通信的准备。    应答信号:有应答(SDA为低电平)和无应答(SDA为高电平
作者:xiao 分类:硬件笔记 浏览:

蓝牙服务和UUID理解

蓝牙服务的组成使用蓝牙对外提供服务的设备,需要有对应的服务功能,如蓝牙耳机,他需要提供音频播放的功能,这种具体的功能,就是蓝牙服务。这个服务分为服务、特性、属性三个部分:服务(Service)服务(Service) 可以理解一个房间,当这个房间为空的时候他什么也不是,不能提供任何的服务功能,所以,房间里面至少需要有一个或多个家俱,不同的家俱有不同的功能,这就是特性(Characteristic)。不同的服务(Service)应该有不同的编号(UUID),用以区分不同的服务(Service)。就像
作者:xiao 分类:硬件笔记 浏览:

stm32的GPIO复用设置

所谓“复用功能”,是指单片机的引脚既可以做普通GPIO使用,也可以作为内部外设控制器的引脚来使用。比如我们来看看STM32F103xx单片机的PA5引脚,如下图:首先,PA5可以做为普通GPIO来使用;其次,如果作为外设的引脚,它可以作为SPI1的时钟(SPI1_SCK)、DAC的输出通道1(DAC_OUT1)或者ADC的输入通道5(ADC12_IN5)。PA5支持的三种外设(SPI1、DAC、ADC)在同一时刻只能选择一种,选择的方法是开启相应外设的时钟,并使其它外设的时钟保持关闭状态。如果
作者:xiao 分类:硬件笔记 浏览:

蓝牙BLE---->Host和Controller

Host和Controller,这两部分在不同的蓝牙技术中(BR/EDR、AMP、LE),承担角色略有不同,但大致的功能是相同的。Controller负责定义RF、Baseband等偏硬件的规范,并在这之上抽象出用于通信的逻辑链路(Logical Link);Host负责在逻辑链路的基础上,进行更为友好的封装,这样就可以屏蔽掉蓝牙技术的细节,让Bluetooth Application更为方便的使用。
作者:xiao 分类:硬件笔记 浏览:

堆栈总结

作者:xiao 分类:硬件笔记 浏览:

单片机的code(keil中运行)值超过某个值的时候程序就不能正常跑的原因之一

    我遇到这个问题的时候,一开始怀疑自己的程序写的不对,然后发现我程序只要多一行就会跑错,不管多的是什么代码,然后就发现了code只要超过7782这个值程序就会跑乱,但是我查看了我的flash是32K的,不可能程序区不够啊,就特别奇怪,百度说可能是什么堆栈溢出,但是程序没有用到堆栈,但是呢这个给了我一个提示,或许我的代码真的有啥溢出了呢,数组还是什么;后面发现程序里面有划分flash程序区和数据区的变量,这个变量太小了,导致划分的程序区小,所以出现溢出
作者:xiao 分类:硬件笔记 浏览:

领悟

知识要运用起来才能体会到它的真正用法
作者:xiao 分类:硬件笔记 浏览:

红外遥控———RC_5编码———定时中断解析出每个按键对应的二进制

    RC_5编码类型的红外遥控,RC_5编码的特点(每一位用时1.8ms,即一位的一个周期是1.8ms;先是2位起始位、1位控制位、5位系统位、6位指令码;其中的起始位都是11,;控制位是为了辨别一直按住还是松开了再按的,当一直按住时这一位则不变;系统码对于同一个遥控器来说,每个按键的系统码都是一样的;指令码则是我们需要的;还需要注意的是我们接收到的位都是反码,所以我们接收到的起始位是00;先高后低则是0,先低后高则是1)。所以基于上面的知识点,我们利
作者:xiao 分类:硬件笔记 浏览:

单片机的时钟理解---讲的很好理解

1.概述简单的说,时钟是单片机的脉搏,是单片机的驱动源,使用任何一个外设都必须打开相应的时钟。这样的好处是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果。每个时钟tick,系统都会处理一步数据,这样才能让工作不出现紊乱。2.原理首先,任何外设都需要时钟,51单片机,stm32,430等等,因为寄存器是由D触发器组成的,往触发器里面写东西,前提条件是有时钟输入。51单片机不需要配置时钟,是因为一个时钟开了之后所有的功能都可以用了,而这个时钟是默认开
作者:xiao 分类:硬件笔记 浏览:

单片机休眠与唤醒-----低功耗的总结

    刚开始接触单片机休眠的时候,我以为单片机休眠后就停止了程序运行,其实不是的,他依然在跑程序(看休眠模式,如果是stop模式,中断等程序还在继续跑),只不过他跑的速度变慢了而已。   如果要求很低功耗, 在单片机休眠前要把耗电的硬件都关掉(当然根据需求设置)。   还有要说的就是, 要解决一个问题,你得知道这个问题涉及的点,然后去把来龙去脉了解清楚,才能更好的解决问题;也就是所谓的知己知彼,百战不殆。就比如我这
作者:xiao 分类:硬件笔记 浏览:

关于keil4中:warning C316:unterminated conditionals

今天用Keil4写程序时遇到这个问题:warning C316:unterminated conditionals跑了几个论坛,在审视了一遍代码之后,知道了原因:  像类似XX.C(99):warning C316:unterminated conditionals这种警告的话XX.c文件有一个凌乱的条件编译或预编译。因为C语言中有些头文件中的预编译或宏定义,那么条件编译就避免不了。写条件编译时,可能有忘写一个基本的语句。比如说,你用了条件编译#ifndef而忘记写#endif。因为他们本来就是
作者:xiao 分类:硬件笔记 浏览:

java静态代理模式

package com.xiao.StacticProxy;  //静态代理模式总结:  //真实对象和代理对象都要实现同一个接口  //代理对象要代理真实角色  //好处:代理对象可以做很多真实对象做不了的事情       //真实对象专注做自己的事情  public class demo {    &
作者:xiao 分类:硬件笔记 浏览:

sprintf()函数-----c语言

C 库函数 int sprintf(char *str, const char *format, ...) 发送格式化输出到 str 所指向的字符串。
作者:xiao 分类:硬件笔记 浏览: