自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zorrorun's blog

Stay Hungry,Stay Foolish.

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

原创 简单滤波算法

1. 限幅滤波 方法:根据经验判断,确定两次采样允许的最大偏差值(设为LIMIT)每次检测到新值时判断,如果本次值与上次值的之差的绝对值大于LIMIT,则本次值无效,放弃本次值。 优点:能有效克服偶然因素引起的脉冲干扰。 缺点:无法抑制那种周期性的干扰,且平滑度差。#define LIMIT 10u8 amlitudeLimiterFilter(u8 oldValue){ u8 n

2017-10-29 16:07:35 974

原创 详解4字节对齐

什么是4字节对齐?4字节对齐有什么好处,有什么坏处?分析一波。 首先先定义一个结构体。typedef struct AA { char a; int b; short c;} AA;AA aa;32位处理器,如果没有采用4字节对齐,首先结构体变量aa存放在内存中的起始地址为0x00,那么其成员变量a的起始地址为0x00,成员变量b的起始地址为0x01,结构体变量

2017-10-27 23:58:35 5944

原创 C语言知识点杂谈

数组是一种特殊的指针! 假如定义一个这样的数组int sa[]={1,2,3};sa是数组的起始地址,与&s[0]等价 那么问题来了,请问sa+1是什么? 假如32系统下,sa的地址是0x00000000,sa+1==0x00000001? 答案是否定的! sa+1 = sa+1*sizeof(int)=0x00000004 所以sa+1是sa[1]的地址,与&s[1]等价;sa+2是s

2017-10-27 23:42:05 458

原创 C语言memcpy和memmove函数的理解和区别

简介:NRF24L01是NORDIC公司生产的一款无线通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度最高可达到2Mbps。 NRF24L01采用SPI通信,可以很方便的连接到MCU上面。特点:2.4G全球开放的ISM频段,免许可证使用。最高工作速率2Mbps,高效的GFSK调制,抗干扰能力强。 1

2016-04-14 16:30:07 3392

原创 FC手柄键值读取

FC手柄,大致可分为两种:一种手柄插口是11针的,一种是9针的,可以直接和DR9的串口头对插。FC手柄有10个按键(实际上只有8个): 上、下、左、右、Start、Select、A、B、A连发、B连发。 A和A连发是一个键值,而B和B连发也是一个键值,只是连发按键当你一直按下的时候,会不停的发送(方便快速按键,比如发炮弹之类的功能)。FC手柄的控制电路,由1个8位并入串出的移位寄存器(CD402

2016-04-13 16:25:11 6187

原创 STM32 CAN总线说明

简介:CAN是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986年率先提出。此后,CAN通过ISO11898及ISO11519进行了标准化。现在在欧洲已是汽车网络的标准协议。CAN协议经过ISO标准化后有两个标准:ISO11898标准和ISO11519-2标准。其中ISO11898是针对通信速率为125Kbp

2016-04-12 22:42:24 20120 2

原创 各种总线协议简介

IICI2C(IIC,Inter-Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上,IIC是半双工通信方式。多主机I2C总线系统结构 需要将SDA和SCL两根线接上拉电阻拉高。开始

2016-04-12 19:48:31 21072

原创 STM32 内部温度传感器

简介:STM32有一个内部的温度传感器,可以用来测量CPU及周围的温度(TA)。 特点:该温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值温度传感器模拟输入推荐采样时间是17.1μsSTM32的内部温度传感器支持的温度范围为:-40~125度。精度比较差,为±1.5℃左右内部温度传感器更适合于检测温度的变化,而不是测量绝对温度。如果需要测量绝度温度,

2016-04-12 18:42:48 25814 3

原创 STM32 待机唤醒

STM32的3种低功耗模式:睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行。停止模式:所有时钟都已停止;1.8V内核电源工作;PLL,HIS和HSERC振荡器功能禁止;寄存器和SRAM内容保留。待机模式:1.8V内核电源关闭;只有备份寄存器和待机电路维持供电;寄存器和SRAM内容全部丢失;实现最低功耗。STM32的3种低功耗唤醒方式:STM32待机模式:在待机模式下,所有的

2016-04-12 17:00:37 7281

原创 电容触摸按键原理

原理:R: 外接电容充放电电阻。 Cs: TPAD和PCB间的杂散电容。 Cx: 手指按下时,手指和TPAD之间的电容。 开关: 电容放电开关,由STM32IO口代替。 没有按下的时候,充电时间为T1(default)。按下TPAD,电容变大,所以充电时间为T2。我们可以通过检测充放电时间,来判断是否按下。如果T2-T1大于某个值,就可以判断有按键按下。检测电容触摸按键过程:①TPAD引脚设

2016-03-23 20:11:05 6096

原创 基于正点原子战舰开发板的贪吃蛇游戏

下午搞了一个贪吃蛇游戏,基本原子战舰开发板,通过外接游戏手柄控制蛇前进的方向以及速度。 主函数代码:#include "led.h"#include "delay.h"#include "key.h"#include "sys.h"#include "lcd.h"#include "usart.h"#include "stdio.h"#include <string.h>#incl

2016-03-22 18:32:10 2128 2

原创 C语言交换赋值函数

两种通信方式:1、串行通信传输原理:数据按位顺序传输。优点:占用引脚资源少缺点:速度相对较慢2、并行通信传输原理:数据各个位同时传输。优点:速度快缺点:占用引脚资源多串口通信按数据传输方向可以分为单工、半双工、全双工。串行通信的通信方式 同步通信:带时钟同步信号传输。 SPI,IIC通信接口,一个时钟周期只传1bit信号异步通信:不带时钟同步信号。 UART(通用异步收发

2016-03-21 15:29:33 4818

原创 STM32 NVIC中断优先级分组说明

STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个) 中断管理方法: 首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。 分组配置是在寄存器SCB->AIRCR中配置: 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。抢占优先级相同的中断,当两个

2016-03-21 15:09:58 20800

原创 线性表之双链表

Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器。Systick定时器常用来做延时,或者实时系统的心跳时钟。这样可以节省MCU资源,不用浪费一个定时器。比如UCOS中,分时复用,需要一个最小的时间戳,一般在STM32+UCOS系统中,都采用Systick做UCOS心跳时钟。Systick定时器就是系统滴答定时器,一个24 位的倒计数定时器,计到0 时,将

2016-03-21 15:01:29 743

原创 线性表之单链表

存储数据元素信息的域–数据域 存储直接后继位置的域–指针域 这两部分组成结点(Node) 单链表:每个结点只包含一个指针域 第一个结点的存储位置叫做头指针,最后一个结点指针为空(NULL)。typedef struct Node{ int data; //数据域 struct Node* next; //指针域}Node;typedef struct Node*

2016-03-21 14:56:24 585

原创 线性表之顺序表

使能和初始化IO口: GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitStructure.GPIO_Mode=GPI

2016-03-21 14:36:53 497

原创 STM32 GPIO寄存器配置说明

STM32F103ZET6共有7组IO,每组有16个IO口,16×7=112,从GPIOA-GPIOG IO口标识带FT表示IO口可以接5V高电平 所有的IO口都可以直接作为中断输入4种输入模式 1. 输入浮空 2. 输入上拉 3. 输入下拉 4. 模拟输入(模拟电压转数字电压)4种输出模式 1. 开漏输出 2. 开漏复用功能 3. 推挽输出 4. 推挽复用功能注

2016-03-21 14:17:49 2216

原创 串口控制小夜灯

写了一个简单的电脑上位机和51单片机串口进行通信,功能可以查看进行串口发送和接收数据,并且可以实现单片机系统的开关。 单片机串口接收到数据0x01,单片机IO口输出高电平,继电器打开,用电器工作; 单片机串口接收到数据0x81,单片机IO口输出低电平,继电器关断,用电器停止工作。上位机图:下位机代码:#include <STC12C5A.h> //头文件#define HEAD 0x00/

2016-03-21 13:58:41 1118

原创 各种排序算法思想

Cortex-M3属于ARM V7架构(ARM 7不等于ARM V7)ARM V7 三大系列:A系列 安卓R系列 实时操作系统M系列 微控制器STM32命名规则:参数:3个12位AD【多达21个外部测量通道】,转换范围:0~3.6(电源电压)2个12位DA12个DMA通道(7+5=12; 7通道DMA1,5通道DMA2) 多达11个定时器2个I2C接口,5个串口,3个SPI接口,1

2016-03-21 13:05:29 486

LDC1000示例程序(51)

2014年参加TI电子设计竞赛所写的程序,请供参考。我做的题目用到了LDC1000这款传感器,用于检测1角硬币、一块硬币和圆环。

2017-09-26

空空如也

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

TA关注的人

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