自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一颗偏执的心

坚持积累、缩小差距、一直走在成为大神的路上。Keep Fighting Now!!!

  • 博客(19)
  • 资源 (4)
  • 收藏
  • 关注

原创 嵌入式系统编程风格的建立与学习

1.1 文件组织  一般在设计时就确定了系统的模块,并注重确定每个模块的接口部分,每个模块  我们用两个文件编写:.H和.C。  .H是模块的接口部分,只允许放置:  1)本模块公开的函数声明;  2)本模块公开的全局变量声明;  3)本模块公开的数据结构定义(即别的模块可能用到的struct);  4)本模块公开的宏定义;在其他模块中可能要引用的宏,如CHANNLE_

2016-12-30 18:27:03 572

原创 嵌入式系统中各种变量存储位置分析

局部变量,局部静态变量,全局变量,全局静态变量区别:局部变量:    栈区局部静态变量:静态区全局变量:    静态区的常量区全局静态变量:静态区在进行C/C++编程时,需要程序员对内存的了解比较精准。经常需要操作的内存可分为以下几个类别:       1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈

2016-12-30 10:07:49 4217

原创 嵌入式系统中结构体+冒号+数字的意义

在最近嵌入式开发过程中经常遇到如下结构体形式:/**@brief GATT Characteristic Properties. */typedef struct{ /* Standard properties */ uint8_t broadcast :1; /**< Broadcasting of the value permitted. */ uint8_t

2016-12-28 17:25:36 1809

原创 嵌入式系统中union的用法

在嵌入式实际应用中,大多数的协议结构定义中,都会使用union类型来定义。使用联合来将较大的对象分解成组成这个对象的各个字节。typedef union{char bytes[4];uint udata;}data;可以使用data.udata数组来访问data.bytes[4]字段的各个字节。注意:char        

2016-12-28 16:59:17 1656 1

转载 关于姿态解算与融合的代码注释篇(三)

加速度计和陀螺仪都能计算出姿态,但为何要对它们融合呢,是因为加速度计对振动之类的扰动很敏感,但长期数据计算出的姿态可信,而陀螺仪虽然对振动这些不敏感,但长期使用陀螺仪会出现漂移,因此我们要进行互补,短期相信陀螺,长期相信加计。不过,其实加计无法对航向角进行修正,修正航向角需要磁力计, 在融合之前先要对传感器原始数据进行一些处理。理想情况下,加速度计水平放置时,XY轴应该是0输出的,仅Z轴输出1个G

2016-12-26 15:00:15 5947 5

转载 关于姿态解算与融合的证明篇(二)

旋转矩阵的变换:对于旋转矩阵转化,先来解决坐标变换的表示。先从二维平面OXY坐标系讲起:当OXY逆时针旋转α度时,同一矢量R在不同坐标下的表示:这里涉及向量的基础知识 补充如下并简单计算: 根据方向余弦矩阵我们可以得到欧拉角:姿态解算的原理:  姿态解算常用的算法有欧拉角法、方向余弦法和四元数法。 欧拉角法在求解姿态时存在奇点(万

2016-12-26 14:49:32 3516

转载 关于姿态解算与融合的基础概念篇(一)

方向矩阵:方向余弦矩阵:欧拉角:关于欧拉角和方向余弦的转换:四元数:一个超复数四元数与欧拉角以及方向余弦的相互转化:

2016-12-24 12:05:32 2603 1

原创 基于matlab程序对PID控制算法的理解

%设一被控对象G(s)=50/(0.125s^2+7s),%用增量式PID控制算法编写仿真程序%(输入分别为单位阶跃、正弦信号,采样时间为1ms,控制器输出限幅:[-5,5],% 仿真曲线包括系统输出及误差曲线,并加上注释、图例)。clear all;close all; ts=0.001; %采样时间sys=tf(50,[0.125,7, 0])

2016-12-23 11:57:23 78533 15

原创 基于matlab仿真对卡尔曼滤波的理解

clearclc;N = 200; t = 1:N;w = randn(1,N); %噪声wx(1) = 0;for i = 2:Nx(i) = x(i-1)+w(i-1); endsubplot(311);plot(t,x); %输出带噪声函数xlabel('原始数据');v = randn(1,N);

2016-12-22 16:25:58 6884 1

原创 基于matlab对ECG信号进行滤波处理

由单片机采集心率数据,截取部分数据处理如下 :前提:根据采样定理,心率信号采样频率为50hz  (大于心率的频率两倍),得带数据信号数据源“B.TXT”文件。1. 原始数据的采集截取有效部分分析。2.数据滤波(50Hz的工频干扰以及放大器本身的漂移),要根据频谱具体分析3.FDA数字滤波器设计,相应系数的得到(本设计2.5HZ滤波高通滤波器 )4.滤波数据的显示PS:虽然滤

2016-12-22 10:07:12 21852 7

原创 基于matlab的简单的寻找波峰波谷处理方法

clc; close all; clear;% 节点信息data=[105.03 99.18 84.965 72.445 68.994 77.265... 91.052 100.61 98.215 86.363 74.439 71.625... 80.061 92.18 97.823 91.483 80.241 73.616... 78.547 89.084 94.92

2016-12-21 17:10:09 27514 5

原创 nrf51822笔记之密码配对过程梳理

配对的触发有以下几种情况:1:主机直接发起。2:从机发起安全请求,如果之前绑定过,那么主机会直接用用保存的LTK加密链路,如果没有那么主机会发起配对请求。3:BLE中的有一个安全模式的概念。当某个属性被设置为需要认证的加密链路访问时,那么当在主机访问从机的属性服务器时,如果链路是不安全的就会返回错误,然后主机会发起配对请求从而实现安全要求。第三种方式:被动等待主

2016-12-20 14:42:43 3788

原创 嵌入式基础之中断处理用法

今天利用中断打印出现错误:打印不到一会  串口打印就乱了  最后找到问题。。中断不能用来打印,否则会出错。。。中断(Interrupts)11. 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程

2016-12-13 17:55:42 944

原创 nrf51822蓝牙之软件模拟spi各种模式

写入时序图:.h文件#include "nrf_gpio.h"#include "pca10028.h"#define SPI_MOSI_HIGH nrf_gpio_pin_set(SPIM0_MOSI_PIN)#define SPI_MOSI_LOW nrf_gpio_pin_clear(SPIM0_MOSI_PIN)#define SPI_CL

2016-12-13 12:17:58 3417 1

原创 nrf51822蓝牙之电量检测

基于nrf51822的电池检测试验,参考了百度手环部分源码。#define BATTER_MAX_VAL 420//4200 4.2V#define BATTER_MIN_VAL 330//3300 3.3V#define ENABLE_CHARGING_PIN_INIT 1#define DISABLE_CHARGING_PIN_INIT 0static unsigned

2016-12-12 22:58:20 8102 4

转载 嵌入式操作系统之任务调度

一般来说, 我们会在程序开始先创建若干个任务, 而此时任务调度器还没又开始运行,因此每一次任务创建后都会依据其优先级插入到就绪链表,同时保证全局变量 pxCurrentTCB 指向当前创建的所有任务中优先级最高的一个,但是任务还没开始运行。 当初始化完毕后,调用函数 vTaskStartScheduler启动任务调度器开始开始调度,此时,pxCurrentTCB所指的任务才开始运行。 所以

2016-12-07 22:45:17 9758

转载 嵌入式操作系统之时钟节拍下的任务切换

FreeRTOS 中任务切换的过程, 提到触发任务切换的两种情况 : 高优先级任务就绪抢占和同优先级任务时间共享(包括提前挂起)。 系统中,时间延时和任务阻塞,时间片都以 Systick 为单位。通过设置文件 FreeRTOSConfig.h 中 configTICK_RATE_HZ 设置任务节拍中断频率, 在启动任务调度器时,系统会根据另一个变量, CPU 的频率configCPU_CLOC

2016-12-07 22:44:13 3261

转载 嵌入式操作系统之信号量,消息队列,邮箱的区别

一:UCOS是一种抢占式的多任务操作系统,如果最高优先级的任务不主动放弃CPU的使用的话,其他任务是无法运行的,通常情况下,高优先级的任务在使用完CPU或其他资源后都要主动放弃,可以通过延时函数或者时等待一些信号量之类的让自己挂起。但是如果最高优先级任务一直使用CPU,那就跟单任务没有什么区别了。二:可以通过等待信号量,消息等是当前任务挂起,或者通过通过延时函数将任务挂起,从而让其他优先级

2016-12-02 15:51:44 12778 1

转载 嵌入式操作系统之信号量,互斥信号量,事件标志组

ucos看了也有一周多了,索性源码都能开得懂,并且能去理解。昨天一开始看事件标志组的时候确实不知道怎么回事,后来百度一下,明白了事件标志组的作用 以后,再去看书上的讲解和原码就清晰多了,很容易就明白了他的基本运行机理。这也给了我一点启示,学一个东西,看一个东西之前,你最少要知道他干嘛用的, 如果连干嘛用的都知道书看的再熟也是枉然。    ucos中提供了好几个用于同步事件以及共享资源访问的

2016-12-02 15:24:20 3343

mesh官方文档.rar

word版本可以方便在office word进行翻译

2021-04-30

蓝牙产品测试入门指南.pdf

蓝牙产品测试方案与测试项说明,关于产品认证测试以及产品性能测试等,以小白的角度从零开始介绍,对产品测试新手具有很好的科普作用。

2020-07-09

单片机C语言程序设计实训100例—基于8051+Proteus仿真

单片机C语言程序设计实训100例—基于8051+Proteus仿真

2015-09-22

单片机学习

快速学习单片机及嵌入式,以及快速掌握一些语法知识

2014-11-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除