<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[不会编程的程序猿]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fei880517</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fei880517]]></copyright><item><title><![CDATA[技术猿、攻城狮日常必知]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/53064438</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/53064438</guid><author>fei880517</author><pubDate>Mon, 07 Nov 2016 10:57:55 +0800</pubDate><description><![CDATA[采样定理又称奈奎斯特定理。


在进行模拟/数字信号的转换过程中，当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax)，采样之后的数字信号完整地保留了原始信号中的信息。


一般实际应用中保证采样频率为信号最高频率的2.56～4倍。]]></description><category></category></item><item><title><![CDATA[Qt5编程——excel操作]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/52673363</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/52673363</guid><author>fei880517</author><pubDate>Mon, 26 Sep 2016 19:58:53 +0800</pubDate><description><![CDATA[方法一：	//创建QODBC数据库（excel文件）
	QSqlDatabase db = QSqlDatabase::addDatabase("QODBC","excelexport");
	QString dsn = QString("DRIVER={Microsoft Excel Driver (*.xls)};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE]]></description><category></category></item><item><title><![CDATA[Qt5编程——word操作]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/52673149</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/52673149</guid><author>fei880517</author><pubDate>Mon, 26 Sep 2016 19:28:51 +0800</pubDate><description><![CDATA[QDir dir;
	QString srcPath, dstPath;
	//新建一个word应用程序，并设置为不可见
	QAxWidget *word = new QAxWidget("Word.Application");
	word->setProperty("Visible", false);

	//获取所有的工作文档
	QAxObject *documents = new QAxOb]]></description><category></category></item><item><title><![CDATA[S5PV210地址映射]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/52242274</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/52242274</guid><author>fei880517</author><pubDate>Thu, 18 Aug 2016 16:36:25 +0800</pubDate><description><![CDATA[32位宽，寻址能力为4G，0x0000 0000~0xFFFF FFFF。映射如下：]]></description><category></category></item><item><title><![CDATA[使用ubuntu过程遇到的问题及解决方法]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/52225453</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/52225453</guid><author>fei880517</author><pubDate>Tue, 16 Aug 2016 21:58:51 +0800</pubDate><description><![CDATA[1.安装软件失败

原因：当前系统正在更新软件
解决方法：等待更新完毕再安装即可
2.]]></description><category></category></item><item><title><![CDATA[SPI(Serial Peripheral Interface)串行外设接口]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/52180907</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/52180907</guid><author>fei880517</author><pubDate>Thu, 11 Aug 2016 12:00:49 +0800</pubDate><description><![CDATA[SPI是一种高速、全双工、同步的通信总线。

SPI主设备负责产生系统时钟，并决定整个SPI网络的通信速率。所有的SPI设各都采用相同的接口方式，可以通过调整处理器内部寄存器改变时钟的极性和相位。由于SPI器件并不一定遵循同一标准，比如EEPROM、DAC、ADC、实时时钟及温度传感器等器件的SPI接口的时序都有所不同，为了能够满足不同的接口需要，采用时钟的极性和相位可配就能够调整SPi的通信]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙BLE基础]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/52130211</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/52130211</guid><author>fei880517</author><pubDate>Fri, 05 Aug 2016 17:05:02 +0800</pubDate><description><![CDATA[（一）BLE与蓝牙4.0的区别
蓝牙4.0实际是个三位一体的蓝牙技术，它将三种规格合而为一，分别是传统蓝牙、低功耗蓝牙和高速蓝牙技术，这三个规格可以组合或者单独使用。
（二）BLE的体系结构



（三）BLE设备链路层状态



（四）信道





频率/MHz
信道编号
类型


2402
37
广播信道


2404~2424
0-10]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之数据报文]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/51980252</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/51980252</guid><author>fei880517</author><pubDate>Thu, 21 Jul 2016 11:40:08 +0800</pubDate><description><![CDATA[见协议P2589，BLUETOOTH SPECIFICATION Version 4.2 [Vol 6,Part B]，Section2.4]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之链路层Link Layer]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/51862371</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/51862371</guid><author>fei880517</author><pubDate>Fri, 08 Jul 2016 17:57:25 +0800</pubDate><description><![CDATA[见协议P2568，BLUETOOTH SPECIFICATION Version 4.2 [Vol 6, Part B]]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之物理层Physical Layer]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/51860870</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/51860870</guid><author>fei880517</author><pubDate>Fri, 08 Jul 2016 16:21:52 +0800</pubDate><description><![CDATA[1.频带


2.发送功率


注：Power in dBm = 10*log(Power in milliwatts)]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之广播报文CONNECT_REQ]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/51001067</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/51001067</guid><author>fei880517</author><pubDate>Mon, 28 Mar 2016 21:25:59 +0800</pubDate><description><![CDATA[（一）

CONNECT_REQ净荷如下：



InitA(Initiator Address)域是public(TxAdd=0)还是random(TxAdd=1)由净荷头中TxAdd域决定。

AdvA(Advertiser Address)域是public(RxAdd=0)还是random(RxAdd=1)由净荷头中RxAdd域决定。







(二)]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之广播报文SCAN_RSP]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/51000989</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/51000989</guid><author>fei880517</author><pubDate>Mon, 28 Mar 2016 20:44:09 +0800</pubDate><description><![CDATA[（一）

SCAN_RSP净荷如下：




AdvA(Advertiser Address)域是public(TxAdd=0)还是random(TxAdd=1)由净荷头中TxAdd域决定。


ScanRspData域包含所有Advertiser‘s Host发出的数据。


（二）




上图是一个完整的SCAN_RSP报文，被解析后如下图所示


]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之广播报文SCAN_REQ]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/51000783</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/51000783</guid><author>fei880517</author><pubDate>Mon, 28 Mar 2016 20:14:30 +0800</pubDate><description><![CDATA[（一）

SCAN_REQ净荷如下：





ScanA(Scanner Address)域是public(TxAdd=0)还是random(TxAdd=1)由净荷头中TxAdd域决定。


AdvA(Advertiser Address)域是public(RxAdd=0)还是random(RxAdd=1)由净荷头中RxAdd域决定。

（二）]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之广播报文ADV_DIRECT_IND]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/50857903</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/50857903</guid><author>fei880517</author><pubDate>Fri, 11 Mar 2016 17:54:20 +0800</pubDate><description><![CDATA[（一）
ADV_DIRECT_IND净荷如下：



AdvA(Advertiser Address)域是public(TxAdd=0)还是random(TxAdd=1)由净荷头中TxAdd域决定。

InitA(Initiator Address)域是public(RxAdd=0)还是random(RxAdd=1)由净荷头中RxAdd域决定。



（二）


上图是]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之广播报文ADV_IND]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/50849392</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/50849392</guid><author>fei880517</author><pubDate>Thu, 10 Mar 2016 20:09:35 +0800</pubDate><description><![CDATA[上图是一个完整的ADV_IND报文，被解析后如下图所示



（1）前导Preamble：0xaa




（2）接入地址Access Address：0x8e89bed6（广播报文的接入地址是固定的）




（3）净荷PDU




①PDU Type：ADV_IND，占4比特


②Advertiser Address Type：public，占1]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之报文（广播报文&数据报文）]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/50607683</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/50607683</guid><author>fei880517</author><pubDate>Fri, 29 Jan 2016 16:53:16 +0800</pubDate><description><![CDATA[1.低功耗蓝牙规范中，有两类报文：广播报文和数据报文。
（1）设备利用广播报文发现、连接其它设备。一旦连接建立之后，则开始使用数据报文。
（2）低功耗蓝牙规定了3个广播信道和37个数据信道。


2.无论是广播报文还是数据报文，链路层只使用一种数据包格式：


注：报文是一比特一比特传输的，且从最低位开始。
（1）Preamble前导
报文最开始的8bits是01010101或]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——低功耗蓝牙之频带和通道]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/50582147</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/50582147</guid><author>fei880517</author><pubDate>Mon, 25 Jan 2016 18:09:06 +0800</pubDate><description><![CDATA[Bluetooth Low Energy，简称BLE
1.低功耗蓝牙工作在2.4GHz ISM频段，范围是2400-2483.5MHz。整个频段分为40个通道，编号从0至39，每个通道宽为2MHz


2.发送功率最小为0.01mW（-20 dBm），最大为10mW（+10 dBm）
3.低功耗蓝牙采用高斯频移键控（GFSK）的调试方式]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——图解连接的建立过程]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/50562948</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/50562948</guid><author>fei880517</author><pubDate>Fri, 22 Jan 2016 17:01:04 +0800</pubDate><description><![CDATA[A与B连接的建立过程如下图所示：
1. A开始查询周围设备，此时B应处于查询扫描状态；
2. B收到A发来的ID包后进入查询响应状态，同时返回FHS包；
3. A开始呼叫B，此时B应处于寻呼扫描状态，；
4. B进入从响应状态，同时发送ID包；
5. A进入主响应状态，同时返回FHS包；
6. A、B进入连接状态，进行数据交互。
这就是蓝牙设备建立连接的一个宏观过程，具体细节还得看协]]></description><category></category></item><item><title><![CDATA[蓝牙学习之旅——专业术语简述]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/50556611</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/50556611</guid><author>fei880517</author><pubDate>Thu, 21 Jan 2016 18:06:55 +0800</pubDate><description><![CDATA[对于没接触过蓝牙的我来说，一上来一头雾水，各种术语听到完全云里雾里。学习一段时间后，弄清了一些概念，赶紧做笔记。
1. page 寻呼
发起连接的蓝牙设备向被连接的蓝牙设备发起连接请求或者认证请求，即是一次page动作。

page
动作。
2. page scan 寻呼扫描
蓝牙设备开启page scan模式，才能响应其它蓝牙设备的连接请求。
3. inquiry查询
蓝牙设备]]></description><category></category></item><item><title><![CDATA[全局变量值交换，swap函数参数要用指针]]></title><link>https://blog.youkuaiyun.com/fei880517/article/details/26501561</link><guid>https://blog.youkuaiyun.com/fei880517/article/details/26501561</guid><author>fei880517</author><pubDate>Wed, 21 May 2014 18:50:44 +0800</pubDate><description><![CDATA[#include 

int a = 10;
int b = 88;

void swap1(int a, int b)
{
	int t;
	t = a;
	a = b;
	b = t;
}

void swap2(int *a, int *b)
{
	int t;
	t = *a;
	*a = *b;
	*b = t;
}

int main(int argc, char *argv[])
{]]></description><category></category></item></channel></rss>