<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zorrorun's blog]]></title><description><![CDATA[Stay Hungry,Stay Foolish.]]></description><link>https://blog.youkuaiyun.com/windows260</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; windows260]]></copyright><item><title><![CDATA[简单滤波算法]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/78386008</link><guid>https://blog.youkuaiyun.com/windows260/article/details/78386008</guid><author>windows260</author><pubDate>Sun, 29 Oct 2017 16:07:35 +0800</pubDate><description><![CDATA[1. 限幅滤波 
方法：根据经验判断，确定两次采样允许的最大偏差值（设为LIMIT）每次检测到新值时判断，如果本次值与上次值的之差的绝对值大于LIMIT，则本次值无效，放弃本次值。 
优点：能有效克服偶然因素引起的脉冲干扰。 
缺点：无法抑制那种周期性的干扰，且平滑度差。#define LIMIT 10
u8 amlitudeLimiterFilter(u8 oldValue)
{
    u8 n]]></description><category></category></item><item><title><![CDATA[详解4字节对齐]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/78370699</link><guid>https://blog.youkuaiyun.com/windows260/article/details/78370699</guid><author>windows260</author><pubDate>Fri, 27 Oct 2017 23:58:35 +0800</pubDate><description><![CDATA[什么是4字节对齐？4字节对齐有什么好处，有什么坏处？分析一波。 
首先先定义一个结构体。typedef struct AA {  
    char a;  
    int b;
    short c;
} AA;
AA aa;32位处理器，如果没有采用4字节对齐，首先结构体变量aa存放在内存中的起始地址为0x00，那么其成员变量a的起始地址为0x00，成员变量b的起始地址为0x01，结构体变量]]></description><category></category></item><item><title><![CDATA[C语言知识点杂谈]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/78370577</link><guid>https://blog.youkuaiyun.com/windows260/article/details/78370577</guid><author>windows260</author><pubDate>Fri, 27 Oct 2017 23:42:05 +0800</pubDate><description><![CDATA[数组是一种特殊的指针！ 
假如定义一个这样的数组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]]></description><category></category></item><item><title><![CDATA[C语言memcpy和memmove函数的理解和区别]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/51152618</link><guid>https://blog.youkuaiyun.com/windows260/article/details/51152618</guid><author>windows260</author><pubDate>Thu, 14 Apr 2016 16:30:07 +0800</pubDate><description><![CDATA[简介：NRF24L01是NORDIC公司生产的一款无线通信芯片，采用FSK 调制，集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度最高可达到2Mbps。 NRF24L01采用SPI通信，可以很方便的连接到MCU上面。特点：
2.4G全球开放的ISM频段，免许可证使用。
最高工作速率2Mbps，高效的GFSK调制，抗干扰能力强。 
1]]></description><category></category></item><item><title><![CDATA[FC手柄键值读取]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/51144503</link><guid>https://blog.youkuaiyun.com/windows260/article/details/51144503</guid><author>windows260</author><pubDate>Wed, 13 Apr 2016 16:25:11 +0800</pubDate><description><![CDATA[FC手柄，大致可分为两种：一种手柄插口是11针的，一种是9针的，可以直接和DR9的串口头对插。FC手柄有10个按键（实际上只有8个）： 
上、下、左、右、Start、Select、A、B、A连发、B连发。 
A和A连发是一个键值，而B和B连发也是一个键值，只是连发按键当你一直按下的时候，会不停的发送（方便快速按键，比如发炮弹之类的功能）。FC手柄的控制电路，由1个8位并入串出的移位寄存器（CD402]]></description><category></category></item><item><title><![CDATA[STM32 CAN总线说明]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/51138072</link><guid>https://blog.youkuaiyun.com/windows260/article/details/51138072</guid><author>windows260</author><pubDate>Tue, 12 Apr 2016 22:42:24 +0800</pubDate><description><![CDATA[简介：
CAN是Controller Area Network 的缩写（以下称为CAN），是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986年率先提出。此后，CAN通过ISO11898及ISO11519进行了标准化。现在在欧洲已是汽车网络的标准协议。
CAN协议经过ISO标准化后有两个标准：ISO11898标准和ISO11519-2标准。其中ISO11898是针对通信速率为125Kbp]]></description><category></category></item><item><title><![CDATA[各种总线协议简介]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/51136513</link><guid>https://blog.youkuaiyun.com/windows260/article/details/51136513</guid><author>windows260</author><pubDate>Tue, 12 Apr 2016 19:48:31 +0800</pubDate><description><![CDATA[IICI2C(IIC,Inter－Integrated Circuit),两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。 
它是由数据线SDA和时钟SCL构成的串行总线，可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送，高速IIC总线一般可达400kbps以上，IIC是半双工通信方式。多主机I2C总线系统结构 需要将SDA和SCL两根线接上拉电阻拉高。开始]]></description><category></category></item><item><title><![CDATA[STM32 内部温度传感器]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/51136072</link><guid>https://blog.youkuaiyun.com/windows260/article/details/51136072</guid><author>windows260</author><pubDate>Tue, 12 Apr 2016 18:42:48 +0800</pubDate><description><![CDATA[简介：STM32有一个内部的温度传感器，可以用来测量CPU及周围的温度(TA)。 
特点：
该温度传感器在内部和ADCx_IN16输入通道相连接，此通道把传感器输出的电压转换成数字值
温度传感器模拟输入推荐采样时间是17.1μs
STM32的内部温度传感器支持的温度范围为：-40~125度。精度比较差，为±1.5℃左右
内部温度传感器更适合于检测温度的变化，而不是测量绝对温度。如果需要测量绝度温度，]]></description><category></category></item><item><title><![CDATA[STM32 待机唤醒]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/51135058</link><guid>https://blog.youkuaiyun.com/windows260/article/details/51135058</guid><author>windows260</author><pubDate>Tue, 12 Apr 2016 17:00:37 +0800</pubDate><description><![CDATA[STM32的3种低功耗模式：
睡眠模式：内核停止，外设如NVIC，系统时钟Systick仍运行。
停止模式：所有时钟都已停止；1.8V内核电源工作；PLL,HIS和HSERC振荡器功能禁止；寄存器和SRAM内容保留。
待机模式：1.8V内核电源关闭；只有备份寄存器和待机电路维持供电；寄存器和SRAM内容全部丢失；实现最低功耗。
STM32的3种低功耗唤醒方式：STM32待机模式：在待机模式下，所有的]]></description><category></category></item><item><title><![CDATA[电容触摸按键原理]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50966191</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50966191</guid><author>windows260</author><pubDate>Wed, 23 Mar 2016 20:11:05 +0800</pubDate><description><![CDATA[原理：R： 外接电容充放电电阻。 
Cs： TPAD和PCB间的杂散电容。 
Cx： 手指按下时，手指和TPAD之间的电容。 
开关： 电容放电开关，由STM32IO口代替。 
没有按下的时候，充电时间为T1（default)。按下TPAD，电容变大，所以充电时间为T2。我们可以通过检测充放电时间，来判断是否按下。如果T2-T1大于某个值，就可以判断有按键按下。检测电容触摸按键过程：①TPAD引脚设]]></description><category></category></item><item><title><![CDATA[基于正点原子战舰开发板的贪吃蛇游戏]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50957362</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50957362</guid><author>windows260</author><pubDate>Tue, 22 Mar 2016 18:32:10 +0800</pubDate><description><![CDATA[下午搞了一个贪吃蛇游戏，基本原子战舰开发板，通过外接游戏手柄控制蛇前进的方向以及速度。 
主函数代码：#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]]></description><category></category></item><item><title><![CDATA[C语言交换赋值函数]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50947003</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50947003</guid><author>windows260</author><pubDate>Mon, 21 Mar 2016 15:29:33 +0800</pubDate><description><![CDATA[两种通信方式：1、串行通信
传输原理：数据按位顺序传输。
优点：占用引脚资源少
缺点：速度相对较慢
2、并行通信
传输原理：数据各个位同时传输。
优点：速度快
缺点：占用引脚资源多
串口通信按数据传输方向可以分为单工、半双工、全双工。串行通信的通信方式 
同步通信：带时钟同步信号传输。
  SPI，IIC通信接口，一个时钟周期只传1bit信号
异步通信：不带时钟同步信号。
  UART(通用异步收发]]></description><category></category></item><item><title><![CDATA[STM32 NVIC中断优先级分组说明]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50946717</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50946717</guid><author>windows260</author><pubDate>Mon, 21 Mar 2016 15:09:58 +0800</pubDate><description><![CDATA[STM32F103系列上面，又只有60个可屏蔽中断（在107系列才有68个） 
中断管理方法： 
首先，对STM32中断进行分组，组0~4。同时，对每个中断设置一个抢占优先级和一个响应优先级值。 
分组配置是在寄存器SCB->AIRCR中配置： 高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。
抢占优先级相同的中断，高响应优先级不可以打断低响应优先级的中断。
抢占优先级相同的中断，当两个]]></description><category></category></item><item><title><![CDATA[线性表之双链表]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50946606</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50946606</guid><author>windows260</author><pubDate>Mon, 21 Mar 2016 15:01:29 +0800</pubDate><description><![CDATA[Systick定时器，是一个简单的定时器，对于CM3,CM4内核芯片，都有Systick定时器。Systick定时器常用来做延时，或者实时系统的心跳时钟。这样可以节省MCU资源，不用浪费一个定时器。比如UCOS中，分时复用，需要一个最小的时间戳，一般在STM32+UCOS系统中，都采用Systick做UCOS心跳时钟。Systick定时器就是系统滴答定时器，一个24 位的倒计数定时器，计到0 时，将]]></description><category></category></item><item><title><![CDATA[线性表之单链表]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50946543</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50946543</guid><author>windows260</author><pubDate>Mon, 21 Mar 2016 14:56:24 +0800</pubDate><description><![CDATA[存储数据元素信息的域–数据域 
存储直接后继位置的域–指针域 
这两部分组成结点（Node） 
单链表：每个结点只包含一个指针域 
 
第一个结点的存储位置叫做头指针，最后一个结点指针为空（NULL）。typedef struct Node
{
    int data;  //数据域
    struct Node* next;  //指针域
}Node;
typedef struct Node*]]></description><category></category></item><item><title><![CDATA[线性表之顺序表]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50946342</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50946342</guid><author>windows260</author><pubDate>Mon, 21 Mar 2016 14:36:53 +0800</pubDate><description><![CDATA[使能和初始化IO口：    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD,ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
    GPIO_InitStructure.GPIO_Mode=GPI]]></description><category></category></item><item><title><![CDATA[STM32 GPIO寄存器配置说明]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50946154</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50946154</guid><author>windows260</author><pubDate>Mon, 21 Mar 2016 14:17:49 +0800</pubDate><description><![CDATA[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. 推挽复用功能注]]></description><category></category></item><item><title><![CDATA[串口控制小夜灯]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50945966</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50945966</guid><author>windows260</author><pubDate>Mon, 21 Mar 2016 13:58:41 +0800</pubDate><description><![CDATA[写了一个简单的电脑上位机和51单片机串口进行通信，功能可以查看进行串口发送和接收数据，并且可以实现单片机系统的开关。 
单片机串口接收到数据0x01，单片机IO口输出高电平，继电器打开，用电器工作； 
单片机串口接收到数据0x81，单片机IO口输出低电平，继电器关断，用电器停止工作。上位机图：下位机代码：#include <STC12C5A.h>   //头文件
#define HEAD 0x00/]]></description><category></category></item><item><title><![CDATA[各种排序算法思想]]></title><link>https://blog.youkuaiyun.com/windows260/article/details/50945596</link><guid>https://blog.youkuaiyun.com/windows260/article/details/50945596</guid><author>windows260</author><pubDate>Mon, 21 Mar 2016 13:05:29 +0800</pubDate><description><![CDATA[Cortex-M3属于ARM V7架构(ARM 7不等于ARM V7)ARM V7 三大系列：
A系列 安卓
R系列 实时操作系统
M系列 微控制器
STM32命名规则：参数：
3个12位AD【多达21个外部测量通道】，转换范围：0~3.6(电源电压）
2个12位DA
12个DMA通道（7+5=12; 7通道DMA1,5通道DMA2) 
多达11个定时器
2个I2C接口，5个串口，3个SPI接口，1]]></description><category></category></item></channel></rss>